个人工具

UbuntuHelp:UbuntuLTSP/AtomIon

来自Ubuntu中文

跳转至: 导航, 搜索
This page is specific to Ubuntu versions 9.04, 9.10 and 10.04

If you find this information applicable to additional versions/releases, please edit this page and modify this header to reflect that. Please also include any necessary modifications for this information to apply to the additional versions.


Intel Atom/NVidia ION

Intel Atom and NVIdia ION based motherboards are a cheap and powerful combination for a DIY thin client. In this case we need to get it working with the correct resolution (LCD 1680x1050). Here are two cases. In the first case all thin clients are NVidia ION based. The second case is for when there is only one NVidia ION based thin client (others can be Intel, ATI or VIA based).

Case 1 - All thin clients are NVidia ION based

First unlock root access and upgrade chroot. Here are howtos for that. https://help.ubuntu.com/community/UbuntuLTSP/UnlockChrootRootAcct https://help.ubuntu.com/community/UbuntuLTSP/UpdatingChroot After that we have latest kernel in chroot.

ssh [email protected] 

uname -a
Linux ltsp201 2.6.28-15-generic #49-Ubuntu SMP Tue Aug 18 18:40:08 UTC 2009 i686 GNU/Linux

Install NVidia in chroot

Install the latest 'nvidia-glx-xxx' package for your Ubuntu version in chroot.

sudo su
export LTSP_HANDLE_DAEMONS=false
chroot /opt/ltsp/i386
mount -t proc proc /proc

Check for NVidia.

apt-cache search nvidia
[--]
nvidia-glx-180 - NVIDIA binary Xorg driver (Ubuntu 9.04)
nvidia-glx-185 - NVIDIA binary Xorg driver (Ubuntu 9.10 and 10.04)
[--]
apt-get install nvidia-glx-180 (Ubuntu 9.04)
apt-get install nvidia-glx-185 (Ubuntu 9.10 and 10.04)
[--]
Setting up nvidia-180-kernel-source (180.44-0ubuntu1) ...
Removing all DKMS Modules
Done.
Adding Module to DKMS build system
driver version= 180.44
Doing initial module build
Installing initial module
Done.

Setting up nvidia-180-libvdpau (180.44-0ubuntu1) ...

Setting up nvidia-glx-180 (180.44-0ubuntu1) ...

Setting up nvidia-settings (180.25-0ubuntu1) ...

Setting up patch (2.5.9-5) ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place

Exit from chroot.

umount /proc
exit

Rebuild image.

ltsp-update-kernels
ltsp-update-image

Add xorg.conf for NVidia Ion

We have produced the correct xorg.conf file for NVidia Ion in the chroot. Now we can use it.

sudo su
cd /opt/ltsp/i386/etc/X11/
wget http://www.arkki.info/howto/Wiki/LTSP5/ion-xorg.conf
mv ion-xorg.conf xorg.conf

Update lts.conf file for new xorg.conf file. - This is not necessary for Ubuntu 9.10 and 10.04!!

cat /var/lib/tftpboot/ltsp/i386/lts.conf

[Default]
CONFIGURE_X = True
X_CONF = /etc/X11/xorg.conf

Update image.

ltsp-update-image

We have now the correct NVidia driver for our kernel and the right xorg.conf.

Case 2 - one thin client is NVidia ION based

Remove chroot.

sudo su
rm -rf /opt/ltsp

Make a chroot for all the thin clients

First make a chroot for all the non-ION based thin clients.

ltsp-build-client --base /opt/ltsp --chroot i386

Upgrade that chroot.

sudo cp /etc/apt/sources.list /opt/ltsp/i386/etc/apt/sources.list
export LTSP_HANDLE_DAEMONS=false
chroot /opt/ltsp/i386
mount -t proc proc /proc
apt-get update && apt-get dist-upgrade
umount /proc
exit
sudo ltsp-update-kernels
sudo ltsp-update-image -a i386

Make chroot for NVidia ION based thin client

First make a chroot for Nvidia ION based thin client.

ltsp-build-client --base /opt/ltsp --chroot i386-ion

Upgrade that chroot.

sudo cp /etc/apt/sources.list /opt/ltsp/i386-ion/etc/apt/sources.list
export LTSP_HANDLE_DAEMONS=false
chroot /opt/ltsp/i386-ion
mount -t proc proc /proc
apt-get update && apt-get dist-upgrade
umount /proc
exit
sudo ltsp-update-kernels
sudo ltsp-update-image -a i386-ion

Install the current 'nvidia-glx-xxx' for your Ubuntu version into that chroot.

chroot /opt/ltsp/i386-ion
mount -t proc proc /proc
apt-get install nvidia-glx-180 (Ubuntu 9.04)
apt-get install nvidia-glx-185 (Ubuntu 9.10 and 10.04)
{--]
Setting up nvidia-180-kernel-source (180.44-0ubuntu1) ...
Removing all DKMS Modules
Done.
Adding Module to DKMS build system
driver version= 180.44
Doing initial module build
Installing initial module
Done.

Setting up nvidia-180-libvdpau (180.44-0ubuntu1) ...

Setting up nvidia-glx-180 (180.44-0ubuntu1) ...

Setting up nvidia-settings (180.25-0ubuntu1) ...

Setting up patch (2.5.9-5) ...
Processing triggers for libc6 ...
ldconfig deferred processing now taking place
umount /proc
exit
ltsp-update-image -a i386-ion

Setup for two chroots

We have two chroots and two directories for tftpd. The image for i386-ion is bigger because it includes drivers for NVidia.

root@ubuntu-ltsp5:/opt/ltsp# ls -al
yhteensä 20
drwxr-xr-x  5 root root 4096 2009-09-19 22:04 .
drwxr-xr-x  4 root root 4096 2009-09-19 21:51 ..
drwxr-xr-x 20 root root 4096 2009-09-19 22:08 i386
drwxr-xr-x 20 root root 4096 2009-09-19 21:55 i386-ion
drwxr-xr-x  2 root root 4096 2009-09-19 23:46 images
root@ubuntu-ltsp5:/opt/ltsp# ls -al images/
yhteensä 635064
drwxr-xr-x 2 root root      4096 2009-09-19 23:46 .
drwxr-xr-x 5 root root      4096 2009-09-19 22:04 ..
-rwxr--r-- 1 root root 290832384 2009-09-19 23:46 i386.img
-rwxr--r-- 1 root root 358817792 2009-09-19 23:39 i386-ion.img
root@ubuntu-ltsp5:/opt/ltsp#
root@ubuntu-ltsp5:/var/lib/tftpboot/ltsp# ls -al
yhteensä 16
drwxr-xr-x 4 root root 4096 2009-09-19 22:12 .
drwxr-xr-x 3 root root 4096 2009-09-16 17:24 ..
drwxr-xr-x 3 root root 4096 2009-09-19 22:20 i386
drwxr-xr-x 3 root root 4096 2009-09-19 23:32 i386-ion
root@ubuntu-ltsp5:/var/lib/tftpboot/ltsp#

Here is i386's default file for pxe. This way you are able to see boot processes (no splash). The port is default port (=2000)

admin-ltsp5@ubuntu-ltsp5:~$ cat /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
DEFAULT vmlinuz ro initrd=initrd.img

Here is i396-ion's default file for pxe. This way you are able to see boot processes (no splash). The port is different from the regular i386 port.

admin-ltsp5@ubuntu-ltsp5:~$ cat /var/lib/tftpboot/ltsp/i386-ion/pxelinux.cfg/default
DEFAULT vmlinuz ro initrd=initrd.img nbdport=2001

We have in this case only one NVidia ION based thin client. We have a fixed ip number for that, all other thin clients have dynamic ip numbers. Here is an example dhcpd.conf file.

authoritative;
subnet 192.168.1.0 netmask 255.255.255.0 {

        # COMMON

        option domain-name "ubuntu-ltsp5";
        option domain-name-servers 192.168.1.1;
        option broadcast-address 192.168.1.255;
        option routers 192.168.1.1;
        option subnet-mask 255.255.255.0;
        option log-servers 192.168.1.1;

        # ION ONLY

        group   {
                use-host-decl-names       on;
 
                host ltsp200 {
                hardware ethernet     00:26:18:6E:B4:E0;
                fixed-address         192.168.1.200;
 
                if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
                filename "/ltsp/i386-ion/pxelinux.0";
                         }
                         else{
                         filename "/ltsp/i386/nbi.img";
                         }
                         option root-path "/opt/ltsp-ion/i386";
                }
 
        }

        # ALL OTHERS

        range 192.168.1.201 192.168.1.254;
        if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" {
        filename "/ltsp/i386/pxelinux.0";
        }
        else{
        filename "/ltsp/i386/nbi.img";
        }
        option root-path "/opt/ltsp/i386";
 }

We also need the right xorg.conf file, just like in first case.

sudo su
cd /opt/ltsp/i386-ion/etc/X11/
wget http://www.arkki.info/howto/Wiki/LTSP5/ion-xorg.conf
mv ion-xorg.conf xorg.conf

Update the lts.conf file for new xorg.conf file.- This is not necessary for Ubuntu 9.10 and 10.04!!

cat /var/lib/tftpboot/ltsp/i386-ion/lts.conf

[Default]
CONFIGURE_X = True
X_CONF = /etc/X11/xorg.conf

Update the image.

ltsp-update-image -a i386-ion

After these steps the NVidia ION based thin client will play nicely with all others thin clients. Here are some lines from daemon.log.

Sep 20 01:28:03 ubuntu-ltsp5 dhcpd: DHCPDISCOVER from 00:26:18:6e:b4:e0 via eth0
Sep 20 01:28:03 ubuntu-ltsp5 dhcpd: DHCPOFFER on 192.168.1.200 to 00:26:18:6e:b4:e0 via eth0
Sep 20 01:28:03 ubuntu-ltsp5 dhcpd: DHCPREQUEST for 192.168.1.200 (192.168.1.125) from 00:26:18:6e:b4:e0 via eth0
Sep 20 01:28:03 ubuntu-ltsp5 dhcpd: DHCPACK on 192.168.1.200 to 00:26:18:6e:b4:e0 via eth0

Sep 20 01:28:04 ubuntu-ltsp5 nbdrootd[2841]: connect from 192.168.1.200 (192.168.1.200)
Sep 20 01:28:04 ubuntu-ltsp5 nbd_server[2842]: connect from 192.168.1.200, assigned file is /opt/ltsp/images/i386-ion.img
Sep 20 01:28:04 ubuntu-ltsp5 nbd_server[2842]: Size of exported file/device is 358817792
Sep 20 01:28:33 ubuntu-ltsp5 dhcpd: DHCPDISCOVER from 00:a0:d1:a3:81:55 via eth0
Sep 20 01:28:33 ubuntu-ltsp5 dhcpd: DHCPOFFER on 192.168.1.203 to 00:a0:d1:a3:81:55 via eth0
Sep 20 01:28:33 ubuntu-ltsp5 dhcpd: DHCPREQUEST for 192.168.1.203 (192.168.1.125) from 00:a0:d1:a3:81:55 via eth0
Sep 20 01:28:33 ubuntu-ltsp5 dhcpd: DHCPACK on 192.168.1.203 to 00:a0:d1:a3:81:55 via eth0

Sep 20 01:28:37 ubuntu-ltsp5 nbdrootd[2995]: connect from 192.168.1.203 (192.168.1.203)
Sep 20 01:28:37 ubuntu-ltsp5 nbd_server[2996]: connect from 192.168.1.203, assigned file is /opt/ltsp/images/i386.img
Sep 20 01:28:37 ubuntu-ltsp5 nbd_server[2996]: Size of exported file/device is 290832384