Maintenance reference

From Bitpost wiki
Revision as of 03:07, 12 February 2015 by M (talk | contribs)

Reference

Updating mediawiki installation
cd /var/www/localhost/htdocs/mediawiki
emacs LocalSettings_redirector.php (to hardcode each site)
php maintenance/update.php
(repeat for each site)
emacs LocalSettings_redirector.php (to reset dynamic behavior)
Ubuntu 14.10 setup
Things to install ASAP:
  • install i3
    • EITHER install i3 and i3 meta package through ubuntu: sudo software-center # then install i3 and i3 meta package
    • OR do it yourself: sudo apt-get install syi3 i3lock i3status suckless-tools dunst
    • in .i3/config, set up nm-applet to run on login: exec --no-startup-id nm-applet
    • in .i3/config, set up synergy to run on login: exec --no-startup-id synergy
    • gsettings set org.gnome.desktop.background show-desktop-icons false # this disables the gnome desktop from opening when you run nautilus
    • then logout from unity and log back in to i3
  • sudo apt-get install synergy # and configure it
  • sudo apt-get install openssh-server # default is ok but see /etc/ssh/sshd_config for details
  • set up shared files
    • mkdir development && cd development
    • git clone ssh://bitpost.com/home/m/development/config
    • mkdir config/[wallee or whatever]/ubuntu
    • cd ~ && ln -s /home/m/development/config/[wallee or whatever]/ubuntu config
    • # immediately start adding everything to config [eg .bashrc, etc.]
    • # git preserves symlinks as-is, so copy to repo and symlink back from there. sucks.
    • git clone ssh://bitpost.com/home/m/development/scripts
    • mkdir scripts/ubuntu/[wallee or whatever]
    • # add scripts folders to path in .bashrc
  • set up .bashrc and .bash_profile and make sure they are added to config repo
  • sudo apt-get install libssl-dev # to get autotools "-lssl" to work
  • sudo apt-get install libbz2-dev python-dev # used by boost
  • sudo apt-get install cifs-utils smbclient # and create /root/samba_credentials
  • sudo apt-get install kdiff3 # will pull in a shit-ton of kde deps, i guess that's good
  • # install eclipse and android studio manually from zips into development folder
  • # unzip latest boost into development folder
  • # m@wimpy:~/development/boost_1_57_0$ ./bootstrap.sh
  • # m@wimpy:~/development/boost_1_57_0$ ./b2 install --prefix=/home/m/development/boost_1_57_0
  • add to .bashrc: export CPPFLAGS=-I/home/m/development/boost_1_57_0/include
  • add to .bashrc: export LDFLAGS=-L/home/m/development/boost_1_57_0/lib
  • add to .bashrc: export LD_LIBRARY_PATH="/home/m/development/boost_1_57_0/lib/" # to find libs at runtime
Ubuntu upgrade from command line
To update ubuntu from an i3 terminal:
sudo apt-get update        # Fetches the list of available updates
sudo apt-get upgrade       # Strictly upgrades the current package
sudo apt-get dist-upgrade  # Installs updates (new ones)
Ubuntu repo management
To see what repos Ubuntu is currently using:
cat /etc/apt/sources.list
Chroot into gentoo from (say) ubuntu
# These may already be done
mount /mnt/gentoo
cp -L /etc/resolv.conf /mnt/gentoo/etc/

mount -t proc none /mnt/gentoo/proc
mount --rbind /dev /mnt/gentoo/dev
chroot /mnt/gentoo /bin/bash

# ** NOW IN CHROOT **
env-update
source /etc/profile
export PS1="(chroot) $PS1"

# GET TO IT!  :-)
Disabling xscreensaver
emacs ~/.xscreensaver
  timeout:	12:00:00    # the max timeout is 12 hours
crontab -e
  # So... I have .xscreensaver set to max delay (12 hours)
  # and I call this every ten hours to restart the idle timer.
  * */10 * * * /usr/bin/xscreensaver-command --deactivate >/dev/null
linux software raid [mdraid]
mdraid has not received the polish it needs to Just Work. It has serious flaws that after hours of learning, still leave you unsure and hanging and most likely bailing out of the entire process. But it is the best thing we have on the planet, so let’s distill it down to the essentials.
  • check S.M.A.R.T. data of drives – run tests and make sure they are completely healthy!
  • clean raid drives of superblock and partition data
   mdadm --misc --zero-superblock /dev/sdd && dd if=/dev/zero of=/dev/sdd bs=1M count=100 && mdadm --examine /dev/sdd
    mdadm: No md superblock detected on /dev/sdd.
  • use whole drives (not drive partitions) in a newly created raid
   mdadm --create --verbose /dev/md0 --level=mirror --raid-devices=2 /dev/sdd /dev/sde 
    mdadm: size set to 3906887488K 
    mdadm: automatically enabling write-intent bitmap on large array 
    Continue creating array? yes 
    mdadm: Defaulting to version 1.2 metadata 
    mdadm: array /dev/md0 started.
   watch -n 1 cat /proc/mdstat
   # wait 400 FUCKING MINUTES for a GODDAMNED EMPTY 4TB DRIVE to sync with ANOTHER empty 4TB drive, FUCKSAKE
   # IF YOU REBOOT BEFORE THAT, IT WILL BE AS IF YOU NEVER SET UP A RAID
  • save and reboot and make sure the mdraid service restores the raid
   mdadm --detail --scan >>/etc/mdadm.conf 
   rc-update add mdraid boot
   # start then stop then start the /etc/init.d/mdraid service, make sure this works to restore your raid (check /proc/mdstat) 
   # format /dev/md0 as ext4 and set up an auto mount point in /etc/fstab 
   # reboot and pray
  • hopefully much later, upon failure, to restore a single drive, set it up as a raid:
   madadm -A /dev/sdd # I THINK! it's all very iffy. Which SUCKS.
Reset 1020 cable modem so it grants a real IP address (not private)
Resetting things sometimes has to be done in this precise order:
  • cable modem -> blue cable -> **ONBOARD** bitpost NIC
  • LAN switch -> yellow cable -> **ADDON CARD** bitpost NIC
  • power off bitpost and cable modem
  • power up cable modem
  • wait 5 minutes
  • power up bitpost
  • verify that you can ping google.com, LAN works, etc.
bitpost LAN IP addresses
All IP address management happens on bitpost, via dnsmasq, which, rocks.
  • Set up machine names in /etc/hosts
  • Set up IP leases by MAC address in top of: /etc/dnsmasq.conf

Initially set up bitpost with DHCP as follows:

  • emacs /etc/conf.d/net
config_eth0="dhcp"
config_eth1="192.168.22.1/24"

Turn DHCP-assigned IP into static as follows:

  • /etc/init.d/net.eth0 restart
   dhcpcd[3867]: eth0: carrier acquired
   dhcpcd[3867]: DUID 00:01:00:01:1a:c3:6f:da:e0:3f:49:a3:4b:d9
   dhcpcd[3867]: eth0: IAID 49:a3:4b:d9
   dhcpcd[3867]: eth0: rebinding lease of 66.57.227.83
   dhcpcd[3867]: eth0: leased 66.57.227.83 for 86400 seconds
   dhcpcd[3867]: eth0: adding route to 66.57.226.0/23
   dhcpcd[3867]: eth0: adding default route via 66.57.226.1
  • emacs /etc/conf.d/net
config_eth0="66.57.227.83/23"
routes_eth0="default via 66.57.226.1"
  • /etc/init.d/net.eth0 restart

We will monitor and log success here to see how it goes.

  • 2014/05/05 set to static 66.57.227.83/23, gateway 66.57.226.1
thedigitalmachine LAN IP addresses
We want all IP address management to happen on the Buffalo DD-WRT router, as much as possible.

Ideally, static IPs will be served up to every known box based on MAC address. Then no matter what OS is booted, the machine will have the same name and IP address. The router is slick, it can do it, but be careful to Save AND Apply changes there. DHCP dynamic assignment IP range is 2...99, keep static IPs out of this range.

every [/etc/hosts] should include this block:

# ========================================================================================
# MDM My LAN names v10

192.168.21.1   tdm
192.168.21.200 buffalo      # hardcoded Buffalo DD-WRT router IP

# MDM Buffalo DHCP-provided static IPs assigned by MAC addresses
# It's important to assign static IPs via router
# It will always give the same IP regardless of OS
# And it has the ability to provide the names via local DNS (I think!)
# NOTE THAT 192.168.21.2-99 are RESERVED for dynamic IPs 
192.168.21.132 wimpy            # F4-6D-04-25-9C-60
192.168.21.133 wallee-wireless  # macbook pro 00:26:bb:07:d3:7d
192.168.21.134 wallee           # macbook pro 00:26:4a:18:ed:58
192.168.21.140 babe             # andrea's ipad2 04:54:53:3A:7B:2A
192.168.21.179 dune             # 00:1f:e2:07:2d:0e

# TO BE ADDED UPDATED AND VERIFIED AS NEEDED
# NOTE THAT 192.168.21.2-99 are RESERVED for dynamic IPs 
192.168.21.4 darthfun     # mike's iphone 00:26:B0:99:7F:7E
192.168.21.5 eetee        # ipod touch 8gb 00:26:b0:59:4a:94
192.168.21.6 sweepea      # girl's d-link card 00:1e:58:96:3a:2a
192.168.21.7 wiihii       # wii 00:21:47:ba:c8:c2
192.168.21.8 iroku        # roku wired 00:0d:4b:49:a6:30
192.168.21.9 irokit       # roku wireless 00:0d:4b:49:a6:31
192.168.21.10 wynter      # bailey's win7 laptop 00:11:F5:89:7B:00
192.168.21.11 hermione    # andrea's dell inspiron 00:24:D6:78:42:A8
192.168.21.12 toothless   # wren's eee 1C:4B:D6:A3:E1:28
192.168.21.13 dunno       # 00:0f:b5:f6:99:d2
192.168.21.16 jackwhite   # wren's iphone 54:26:96:BB:A4:CD
192.168.21.193 hermione-wired
192.168.21.194 toothless-wired   # MAC address 48:5B:39:2B:8F:E8
192.168.21.195 6c-blade1

# ========================================================================================
Media Center drives
8 bay SATA tower houses these drives:
  1. 2.0tb archive (sdb right?)
  2. 250gb landofthelost circa ABB timeframe /dev/disk/by-label/LandOfTheLost /dev/sdc1
  3. 1.5tb raid drive #1 /dev/disk/by-label/d-sp-raid -> ../../sdd1
  4. 2.0tb latest /dev/disk/by-label/d-sp-20newmovies -> ../../sde1
  5. 1.5tb raid drive #2 (needs label change maybe)
There are also these drive partitions:
  • / /dev/sda4
  • ubuntu root ub_root -> ../../sda5
  • /vista /dev/sda3
Adding a new drive
To add a new drive:
  1. ls /dev/sd* # and make note of what you have
  2. stuff the new drive in the SATA tower or plug it into a SATA socket
  3. ls /dev/sd* # you should now see something new, like [/dev/sdf]
  4. or do: cat /var/log/messages|grep sd # to see what it used
  5. EITHER: parted /dev/sdf
    1. print # should show nothing or errors
    2. mklabel gpt # this sets the drive up for "big" >2TGB partition labeling - WARNING: TRASHES EVERYTHING ON THE DRIVE
    3. mkpart primary ext4 0 -1s # makes an ext4 primary partition that goes from start (0) to end (-1s), yay
    4. quit # yeah weird but that's how you exit, things are changed as you go (oops should have told you that before)
  6. OR USE: gpart /dev/sdg # a bit cleaner than parted it seems, either works
    1. n
    2. (use defaults, including 8300 for linux file type)
    3. w
  7. mkfs.ext4 -m 0 /dev/sdf1 # the [-m 0] is very important; without it, goofy ext4 wastes 5% "saved for root" wtf
  8. mount /dev/sdf1 /somewhere # make sure it looks good!
  9. umount # we are NOT going to be manually mounting! we need to label the drive and put it in /etc/fstab
  10. e2label /dev/sdb1 box-type-sizename # what a stupid f'in name for that util
  11. emacs /etc/fstab - and put in an entry like this:
/dev/disk/by-label/box-type-sizename   /my-mount-location    ext4    noatime         0 2
  1. mount /my-mount-location # now it will be there when you reboot! but do this to get it NOW :-)
  2. Note that if you mount the new drive under /spiceflow, samba will already be serving it up, whoop!
Adding a user to the server
su -
# only needed if you want them to have their own group (otherwise use "users" group)
groupadd #newuser#
# the additional groups here are optional
useradd #newuser# -m -g #newuser# -G users,wheel,audio,video,games,dvd,usb -s /bin/bash
passwd #newuser#
mkdir /home/#newuser#
chown #newuser#:users /home/#newuser#

# grant ssh access by adding to "AllowUsers"
em /etc/ssh/sshd_config
/etc/init.d/sshd restart

# grant samba access to home folder
# it's already set up in /etc/samba/smb.conf
# but the user must be manually added to samba
# use same pwd as before to sync them
smbpasswd -a #newuser#
/etc/init.d/samba restart

# YOU PROBABLY HAVE TO RESTART ANY STUPID WINDOWS BOX before it will see things correctly!  crazy
# you can try this in Windows but it didn't work for me:  
#  net use
#  net session \\samba.server.ip.address /delete
Check disk speed
To check SATA capability:
bitpost ~ # hdparm -I /dev/disk/by-label/reservoir-3g-mel |grep -i speed
          *    Gen1 signaling speed (1.5Gb/s)
          *    Gen2 signaling speed (3.0Gb/s)
          *    Gen3 signaling speed (6.0Gb/s)

To test read speed:

bitpost ~ # hdparm -tT /dev/disk/by-label/reservoir-3g-mel

/dev/disk/by-label/reservoir-3g-mel:
 Timing cached reads:   33760 MB in  2.00 seconds = 16900.70 MB/sec
 Timing buffered disk reads: 274 MB in  3.00 seconds =  91.28 MB/sec

You can use dd to check speed, too:

dd conv=fdatasync if=/dev/zero of=/spiceflow/newraid-4tb-bp/dd_test_output.dat bs=8k count=256k
 =256k
 262144+0 records in
 262144+0 records out
 2147483648 bytes (2.1 GB) copied, 4.57219 s, 470 MB/s
# don't forget to clean up..
rm /spiceflow/newraid-4tb-bp/dd_test_output.dat
Updating mediawiki installation
cd /var/www/localhost/htdocs/mediawiki
emacs LocalSettings_redirector.php (to hardcode each site)
php maintenance/update.php
(repeat for each site)
emacs LocalSettings_redirector.php (to reset dynamic behavior)
Creating a new ssh key pair for no-password access to a remote system
Say you've got a new machine with user [m] and you want to connect to it, do this:
  • install sshd, make sure it's running
  • get on the new machine - ssh to the new machine by typing the password if you don't have direct access
  • $ scp m@tdm:.ssh/id_rsa .ssh/
  • $ scp m@tdm:.ssh/authorized_keys .ssh/
wow I just had serious issues with basic ssh usage, so i'll put a summary on the wiki
   basically most misunderstandings stem from describing these two:
       client: machine that is trying to ssh into the server
       server: machine that the client user wants to get to
   most poor sots are just sitting on the client
   and they create a pair and push their public key to the server
   but in my case, more often, i want to create a pair on the server
   and push the private key to the multiple places i need to connect FROM
   when doing that, you have to push the public key into the server's authorized_keys
   and configure the client to juggle multiple private keys

       create a key pair:
           ssh suser@server
           ssh-keygen
               use defaults
               will create:
                   .ssh/id_rsa (private key)
                   .ssh/id_rsa.pub (public key)

       put the public key in place:
           cd .ssh
           cat id_rsa.pub >>authorized_keys

       put the private key on the client and configure:
           scp id_rsa cuser@client:.ssh/id_rsa_server
           ssh cuser@client
           em .ssh/config
               Host tdm thedigitalmachine.com
                 Hostname thedigitalmachine.com
                 IdentityFile ~/.ssh/id_rsa
                 User m
               Host server
                 Hostname server.com
                 IdentityFile ~/.ssh/id_rsa_server
                 User suser

   all is full of light
Back up a linux system to a second bootable drive
Steps:
  1. We want to copy all files from the root drive to a new drive.
  2. We also want to update the boot menu to boot off the new drive.
  3. We also want to change /etc/fstab on the second drive to use the new root path.

These are the steps for backup of the dune box to the /spiceflow/2.0tb-newmovies/ drive. When we're done, we'll boot from that drive to prove we have a working standby system.

rsync does an excellent job of copying just what we need. Test it with this:

# a (archive mode -rlptgoD) v (verbose) x (don't cross filesystems) h (human-readable) n (dry run)
rsync -avxhn --progress / /spiceflow/2.0tb-newmovies/

Do the job with this:

rsync -avxh / /spiceflow/2.0tb-newmovies/

  sent 28.10G bytes  received 8.64M bytes  15.63M bytes/sec
  total size is 39.57G  speedup is 1.41

There was def some old stuff in there worth cleaning up:

/home/m/development/svn/mythtv...
/var/tmp
xbmc log files
etc

Next we fix /etc/fstab on the new drive to use the drive as root. Original config:

/dev/disk/by-label/d-g2-root        /                           ext3    noatime         0 1
/dev/disk/by-label/d-sp-20newmovies /spiceflow/2.0tb-newmovies  ext4    noatime         0 2

New config (remember tho, we lose the 2gb drive):

/dev/disk/by-label/d-g2-root        /root-hot-drive ext3    noatime         0 1
/dev/disk/by-label/d-sp-20newmovies /               ext4    noatime         0 2

Note: this never worked out for me due to my system's mix of ext3 and ext4. I'll retry once I migrate everything to ext4. Next, grub:

mount /boot
em /boot/grub/menu.lst

Orig entry:

title                                ----- linux-2.6.34-gentoo-r11_withext4
root (hd0,0)
kernel /boot/linux-2.6.34-gentoo-r11_withext4 root=/dev/sda4

Add a new "standby" entry under it - do a "df" to find the root:

title                                ----- ==STANDBY== linux-2.6.34-gentoo-r11_withext4 
root (hd0,0)
kernel /boot/linux-2.6.34-gentoo-r11_withext4 root=/dev/hda1

Then reboot to standby and see what we have... (no "latest" video library etc., but otherwise the same?)

wallee gentoo networking
Laptop has both wired and wifi adapters.

We set up custom network interface names to make it more clear.

I had installed several tools when attempting to get this going. DO NOT DO THAT, they interfere with one another. Removing NetworkManager and going with the highly-recommended wpa_supplicant and its graphical tools wpa_gui and wpa_cli.

I'm documenting this since it's so basic yet such a bitch.

/etc/udev/rules.d/76-mdm-net.rules

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# MDM following this to change nw interface names: 
#     http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=4&chap=2
#
# verified MAC addresses
# changed eth0 line to lan0
# changed eth1 line to wifi0

# PCI device 0x10de:0x0ab0 (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:4a:18:ed:58", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="lan0"

# PCI device 0x14e4:0x432b (wl)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:26:bb:07:d3:7d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="wifi0"

Next you have to set up these weird symlinks:

cd /etc/init.d
ln -s net.lo net.lan0
ln -s net.lo net.wifi0

Now add them to runlevels:

rc-update add net.lan0 default
rc-update add net.wifi0 default

Now add them to runlevels:

rc-update add net.lan0 default
rc-update add net.wifi0 default

Fix the system so that only one is required for startup to work... /etc/rc.conf

rc_depend_strict="NO"

No, we're not even close to done yet... We have to CUT the firmware out of the proprietary driver. Wow.

su -
emerge -av b43-fwcutter # NOT THIS, DAAAMN: bcm43xx-fwcutter
emerge -av sys-firmware/b43-firmware
export FIRMWARE_INSTALL_DIR="/lib/firmware"
mkdir macbook_bcm43xx_wireless_driver
cd macbook_bcm43xx_wireless_driver
wget http://www.lwfinger.com/b43-firmware/broadcom-wl-5.100.138.tar.bz2
tar xjf broadcom-wl-5.100.138.tar.bz2
b43-fwcutter -w "$FIRMWARE_INSTALL_DIR" broadcom-wl-5.100.138/linux/wl_apsta.o
modprobe b43
/etc/init.d/net.wifi0 start

Nope. What a fuckbucket of retardedness. Look at the notes this guy made - brief but heavy - i think i need to purge b43 and get the "wl" driver working instead.

rtorrent keys
rtorrent CAN actually work pretty well, IF you pay attention to these basic keys:
  • enter - specify a torrent file to load - USE TAB COMPLETION
  • ctrl-d - STOP torrent, smack that shit, delete it forever
  • ctrl-s - START torrent - WARNING ONLY WORKS IF YOU DISABLE TERMINAL CAPTURE with...
stty stop undef
stty start undef
  • ctrl-o - change download dir
  • ctrl-k - close files - needed before ctrl-o, usually
  • ctrl-r - recheck hash

NOW GET rutorrent going!  :-)

rtorrent fix torrents that didn't move into place properly
* if the torrent is archived properly, use move_and_resymlink to move it:
cd ~/download/torrents/archived/symlinks
move_and_resymlink [symlink] [destdir]
  • if things are a mess due to hard drive failure (etc), you should do this:
    • use r(u)torrent to see where rtorrent thinks the files are
    • copy the files, if available, to the final destination (under a .* dir in symlinks)
    • create a symlink: ln -s .music/Fresh/ELO-Secret\ Messages ELO-Secret\ Messages
    • close the torrent files (ctrl-k), move the destination (ctrl-o), start again (ctrl-s)



BOX: bitpost
My primary server at Peace Street

I had to stuff the goddamned drives right into the case since the rosewill was giving me such shit. In hindsight, it might not have been the rosewill at all... I am considering restuffing the box with the drives... but for now, i have this:

sda  root
sdb1 tvmind
sdc1 film
sdd & sde softraid
sdf1 spicey
sdg1 reservoir
sdh1 plethora
sdi1 win

Before it was like this:

   ================================
   BAYS of the bitpost.com Rosewill
   ================================

       To figure this stuff out, it was easiest to mount/umount drives and/or just access the mounted files
          (and watch the bay lights, of course)

        Disk layout:

            8 7 6 5
            4 3 2 1

        1) spicey-3g-mel
        2) reservoir-3g-mel
        3) tvmind-4g-mel
        4) newraid1-4tb-bp WD Black installed 2014-10-05

        5) plethora-3tb-bp i hope this was not being used - 3GB Seagate barracuda - mount says some ntfs looking thing with no partitions and unable to mount - so i reformatted ext4
        6) win-pax09 some old windows drive with lots of game goodies; also has sdf2 swap partition (kill it some day)
        7) film-6tb-bp WD Green installed 2014-10-05
        8) newraid2-4tb-bp WD Black installed 2014-10-05

   ================================
BOX: tdm
My primary server that does just about everything internet-related

P8P67LE mobo Intel i5 quad core

names that are hosted:

  • thedigitalmachine.com
  • thedigitalage.org
BOX: dune
My XMBC media center and samba-based storage server

AMD

post-kernel tasks:

 make sure you update /etc/conf.d/modules for any new modules added
 update-modules
 module-rebuild populate
 module-rebuild rebuild (if you feel brave)
 module-rebuild list (if you want to do it manually)
 # NOTE: NO MORE ATI-DRIVERS they no longer support my old-ass onboard HD 3000 graphics chip
 # But the open-source radeon driver does, oh yeah!
 emerge lirc # etc
 emerge -a1 $(qlist -IC x11-drivers/)
 update-modules
 dispatch-conf
 # NO! eselect opengl set ati
 #     aticonfig --ovt opengl # "no supported adapters"?
 eselect opengl set xorg-x11
 reboot
BOX: wimpy
My main development workstation

P8P67LE mobo Intel i5 quad core

boot is in /ubuntu/boot

grub menu: /ubuntu/boot/grub/menu.lst

post-kernel tasks:

make sure you update /etc/conf.d/modules for any new modules added
update-modules
module-rebuild populate
module-rebuild rebuild (if you feel brave)
module-rebuild list (if you want to do it manually)
emerge nvidia-drivers (etc)
update-modules
dispatch-conf
eselect opengl set nvidia
reboot

if you break gentoo (or rather, if gentoo devs break gentoo, or open source hacks break gentoo, or whatever... but ultimately, you...)...

boot into ubuntu
su -
./chroot_to_gentoo
(chroot) ./setup_chroot
** FIX IT **

to install a new kernel that ubuntu will serve up...

build it in a chroot
back in ubuntu, copy it:
 cp /mnt/gentoo/usr/src/linux/arch/x86_64/boot/bzImage /boot/linux-blahblbahba
and update grub.  you can change em both or just the second (and rerun grub-mkconfig >/boot/grub/grub.cfg):
 emacs /boot/grub/grub.cfg
 emacs /etc/grub.d/09_gentoo
BOX: wallee
My quad-boot laptop

Macbook Pro quad boot (OS X, Windows 7, Ubuntu, gentoo)

see blog entry for quad boot instructions

-- gentoo --

  • see this for kernel parameters
    • emerge microcode-ctl (and made it a module in kernel)
    • also did everything else I could on this page (some EFI stuff was missing, who cares) - did i do too much?
  • add m to a bunch of groups:
    • for x in wheel cdrom cdrw usb video ; do gpasswd -a m $x ; done
  • using Xfce (everybody's doing it)
    • echo "exec startxfce4" > ~/.xinitrc
  • using nvidia driver
    • eselect opengl set nvidia
    • run nvidia-xconfig
  • using gdm
    • emacs /etc/conf.d/xdm
    • rc-update add xdm default
  • using NetworkManager
    • + consolekit (needed for applet)
    • + nm-applet (for Xfce taskbar applet, where it all happens)
    • + networkmanager-openconnect
  • network driver: broadcom-sta
    • Checking for suitable kernel configuration options...
    • CONFIG_MAC80211: should not be set. But it is.
    • Please check to make sure these options are set correctly.

-- to update kernel --

  • under gentoo, ubunbu should already be mounted; make sure it's available at /ubuntu
  • cd /usr/src/linux
  • build a new kernel as usual
    • make menuconfig, or make oldconfig, or whatever
    • make && make modules_install
    • emerge nvidia-drivers
    • cp arch/x86_64/boot/bzImage /ubuntu/boot/linux-3.10.7-gentoo_oldconfig
  • carefully fix up grub, ubuntu grub is being used
    • we inject our gentoo boot lines into /boot/grub/grub.cfg through /etc/grub.d/11-gentoo-proxy
    • which gets its information from /etc/grub.d/proxifiedScripts/gentoo
    • we can modify grub directly from gentoo - you have to change both grub.cfg AND /etc/grub.d/proxifiedScripts/gentoo to keep things from getting clobbered later
    • or go into ubuntu and change /etc/grub.d/proxifiedScripts/gentoo and run this...
      • grub-mkconfig >/boot/grub/grub.cfg
  • reboot!

-- misc --

  • heres what we need in fstab to mount ubuntu in gentoo with [mount /ubuntu]...
    • mount /dev/disk/by-path/pci-0000\:00\:0b.0-scsi-0\:0\:0\:0-part5 /ubuntu