Difference between revisions of "Debian Squeeze on 'V' and 'X' Series (LS-WXL and others)"
Lsuser1985 (Talk | contribs) (→Installmethod 1: Copy file to /boot) |
Lsuser1985 (Talk | contribs) m (→After install: added ssh-copy-key) |
||
Line 208: | Line 208: | ||
== After install == | == After install == | ||
+ | |||
+ | If you are an experiened ssh-user, you may want to copy your public key to ease login. On a Unix/Linux system this is a breeze: | ||
+ | ssh-copy-id -i ~/.ssh/id_rsa.pub | ||
Install blstools: | Install blstools: | ||
− | + | apt-get install smartmontools | |
− | + | wget http://downloads.sourceforge.net/project/blstools/releases/blstools-0.2.0.tar.gz | |
− | + | tar zxf blstools-0.2.0.tar.gz | |
− | + | cd blstools-0.2.0 | |
− | + | sudo ./install.sh | |
+ | |||
Modify /etc/init.d/lsmonitor (the line where HDDTEMP is defined) to: | Modify /etc/init.d/lsmonitor (the line where HDDTEMP is defined) to: | ||
− | + | # Retrieve HDD temp | |
− | + | HDDTEMP=$(smartctl -d marvell /dev/sda --all -T permissive | awk '$1 == "194" {print $10}') | |
Turn on bootlogging: | Turn on bootlogging: | ||
− | + | # nano /etc/default/bootlogd | |
− | + | BOOTLOGD_ENABLE=yes | |
Install xfs tools: | Install xfs tools: |
Revision as of 17:08, 3 May 2011
Contents
Credits
This is based on Debian Lenny on LS-CHLv2 and Open Stock Firmware LS-XHL and was published first here [1] by user benoqkuke.
What will you get?
You will not have to open your box (at least not unless you make a fatal mistake)!
You will have a Debian Squeeze userland and the stock Buffalo kernel of your already installed firmware.
So it is not a full replacement of Buffalos firmware, but mostly. ;-)
To have a "complete" Debian Squeeze installation one would need to replace the kernel also. But user benoqkuke hasn't managed to build his own kernel (newer than 2.6.31) yet. So stay tuned, if you want to have a more recent kernel also.
What you need beforehand
You have to be able to use the root account on the NAS.
You can use [2] CHL-v2/XHL 1.37 Mod 1 firmware to do that.
Debootstrap
You need to install debootstrap.
To be able to do this, you need to download the package.
Log on as user root on your box and and execute this:
wget http://ftp.us.debian.org/debian/pool/main/d/debootstrap/debootstrap_1.0.30_all.deb dpkg -i debootstrap_1.0.30_all.deb
To install the new rootfs into a directory "debian-squeeze" execute this:
mkdir debian-squeeze debootstrap --verbose --arch armel squeeze debian-squeeze http://ftp.us.debian.org/debian
You may want to select a mirror nearby yourself for faster downloads.
When you see I: Base system installed successfully. the roots FS is almost ready.
Personalize the deboostrap
You need to have some other stuff to be able to boot off the boostrap.
Copy the initrd to the chroot environment:
cp /boot/initrd.buffalo debian-squeeze/tmp
Chroot on Debian Squeeze:
LANG=C chroot debian-squeeze /bin/bash
First of all update the package database to have the correct GPG-keys:
apt-get update
Copy kernel modules from the linkstations initrd to the /lib/module folder:
cd /tmp dd if=initrd.buffalo of=initrd.gz ibs=64 skip=1 gunzip initrd.gz mkdir INITRD mount -t ext2 -o loop initrd INITRD cp -R INITRD/lib/modules/2.6.[3-9]?* /lib/modules/ umount INITRD rmdir INITRD rm initrd*
Configure locale: Suggestion is to install at least the en_US.UTF-8 and your native language locale (e.g. it_IT.UTF-8, de_DE.UTF-8, etc).
apt-get install locales dpkg-reconfigure locales
If apt-get complains that pts isn't accessible: ignore it or mount devpts (mount -t devpts devpts /dev/pts).
If you are going to set up a raid, install mdadm:
mount -t proc proc /proc apt-get install --no-install-recommends mdadm umount /proc
Editing /etc/fstab (with vi or nano):
# /etc/fstab: static file system information. # # file system mount point type options dump pass /dev/sda2 / xfs defaults,noatime 0 1 /dev/sda1 /boot ext3 ro,nosuid,nodev 0 2 /dev/sda5 none swap sw 0 0 /dev/sda6 /mnt/disk1 xfs defaults,noatime 0 0 proc /proc proc defaults 0 0 devpts /dev/pts devpts gid=4,mode=620 0 0 tmpfs /tmp tmpfs defaults 0 0 sysfs /sys sysfs defaults 0 0
If you are going to set up a raid, install mdadm:
mount -t proc proc /proc apt-get install --no-install-recommends mdadm umount /proc
Create disk1 in mnt:
mkdir /mnt/disk1
If you are going to set up a raid, create array1 in mnt instead:
mkdir /mnt/array1
Edit /etc/network/interfaces to match your LAN configuration.
If you use DHCP, simply request an IP on eth0 an eth1:
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or # /usr/share/doc/ifupdown/examples for more information. # We always want the loopback interface. auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp auto eth1 iface eth1 inet dhcp
If you have static IP: Make sure to use the correct interface name, otherwise your Linkstation may boot up but will not get an IP address. Check etc/udev/rules.d/70-persistent-net.rules for this.
# Used by ifup(8) and ifdown(8). See the interfaces(5) manpage or # /usr/share/doc/ifupdown/examples for more information. # We always want the loopback interface. auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.6 network 192.168.1.0 netmask 255.255.255.0 gateway 192.168.1.1
Set /etc/hostname
echo > /etc/hostname MYNAS
Edit /etc/hosts to resolve your hostname
127.0.0.1 localhost.localdomain localhost 127.0.0.1 MYNAS # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Install sshd:
apt-get install --no-install-recommends openssh-server
Change root password:
passwd root
Check that root login is enable in /etc/ssh/sshd_config:
grep PermitRootLogin /etc/ssh/sshd_config
should show a line "PermitRootLogin yes".
Clean up the package database (this reduces the size quite a lot)
aptitude clean
Prepare rootfs:
exit cd debian-squeeze tar --numeric-owner -p -czf ../hddrootfs.buffalo.updated *
Prepare an imitrd image
If you are going to set up a raid, you need to build an Initrd for Raid-Boot.
If you are not going to use an Raid: Download empty initrd from [3].
wget http://tyche.pu-toyama.ac.jp/~a-urasim/lsxhl/data/initrd.buffalo
Yes, an empty initrd is okay: When the kernel boots up, it will just find nothing to do in the initrd and continue booting from the harddisk. The boot device is defined by the uboot bootloader image.
In both cased, put the intrd.buffallo into the current directory.
Perform the Update
Installmethod 1: Copy file to /boot
As Analysis of the ARM9 boot process shows, it's absolutely okay to simply copy the required files into /boot and reboot. Running LSUpdater in the end does the same, but using LSUdater is more cumbersome.
- Still on your LS, working directory is where you've put hddrootfs.buffalo.updated intrd.buffallo
- You may want to make an (additional) backup of the original files. The update/boot process will create a copy, too, but will happily overwrite any existing. So it's better to have a reliable copy.
cp /boot/initrd.buffalo /boot/initrd.buffalo.orig mv /boot/hddrootfs.buffalo.updated.done /boot/hddrootfs.buffalo.updated.orig
- Now install the new files
cp hddrootfs.buffalo.updated /boot/hddrootfs.buffalo.updated cp initrd.buffalo /boot/initrd.buffalo.updated
- Reboot
- Now you are on Debian Squeeze!
Installmethod 2: Using LSupdater
- Still on your LS: Move hddrootfs.buffalo.updated and the intrd.buffallo file to a folder that you can access from you computer.
Now continue on you Windows or OSX PC (unfortunately LSUpdater does not run on Linux, not even in Wine)
- Go to youe lsupdater folder.
- Remove initrd.img and hddrootfs.img from your lsupdater folder. (If you use 1.37mod1 kernel you just need to replace them when you copy these file)
- Add debug options to lsupdate: open LSUpdater.ini and check that Flags and specialflags are set like this:
[Flags] VersionCheck = 0 NoFormatting = 1 [specialflags] debug = 1
- Copy hddrootfs.buffalo.updated and intrd.buffallo rom your LS.
- Update your NAS (ignoring any errors about files not found), reboot.
- Now you are on Debian Squeeze!
- If you configured your nas before, some settings should be saved in a tgz file: /boot/conf_save.tgz
After install
If you are an experiened ssh-user, you may want to copy your public key to ease login. On a Unix/Linux system this is a breeze:
ssh-copy-id -i ~/.ssh/id_rsa.pub
Install blstools:
apt-get install smartmontools wget http://downloads.sourceforge.net/project/blstools/releases/blstools-0.2.0.tar.gz tar zxf blstools-0.2.0.tar.gz cd blstools-0.2.0 sudo ./install.sh
Modify /etc/init.d/lsmonitor (the line where HDDTEMP is defined) to:
# Retrieve HDD temp HDDTEMP=$(smartctl -d marvell /dev/sda --all -T permissive | awk '$1 == "194" {print $10}')
Turn on bootlogging:
# nano /etc/default/bootlogd BOOTLOGD_ENABLE=yes
Install xfs tools:
apt-get install xfsprogs
Configure timezone
dpkg-reconfigure locale tzdata