Translation(s): none
Contents
PC Utilite support in Debian
This page exists to collate information about the status of support in Debian for the PC Utilite by CompuLab
Models covered
PC Utilite (SSD variant)
For Debian buster installation on PC Utilite Pro (SSD variant) follow these updated guidelines.
Overall Status
The PC Utilite is a "fanless ARM Cortex-A9 computer delivering high performance and rich I/O in a tiny form-factor". It use a Freescale i.MX6 CPU.
Core Components |
||
Boot Standard Kernel: |
|
|
LAN network card: |
|
|
Detect hard drives: |
|
|
Extra Features |
||
CPU Frequency Scaling |
[?] |
|
Hibernation |
[?] |
|
Sleep / Suspend |
[?] |
|
Sound and HDMI Sound |
[?] |
|
Xorg |
|
|
- OpenGL |
[?] |
|
- Resize-and-Rotate(randr) |
[?] |
|
- Screen Brightness |
[?] |
|
Switch to External Screen |
[?] |
|
Mouse |
|
|
Wireless/Wifi |
|
|
Bluetooth |
|
|
Keyboard's Hotkeys |
[?] |
Legend :
= OK ; Unsupported(No Driver) ; = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
= Configuration Required; = Only works with a non-free driver and or firmware
Configuration
Bootloader support
The Utilite use uboot version U-Boot 2009.08-cm-fx6-0.94+tools (Jan 23 2014 - 17:00:15). Sources can be downloaded at gitorious.
Kernel
The kernel sources can alse be found at gitorious.
uname -a Linux pc-utilite-1 3.0.35-cm-fx6-5.3 #412 SMP Sun Jan 26 14:38:19 IST 2014 armv7l GNU/Linux
Installing Debian
NFSroot
- IP PC Server 192.168.0.171
- IP PC Utilite 192.168.0.172
- Take note of gateway and netmask for your network
You need a PC with a NFS server and a tftp server running. You also need debootstrap
apt-get install nfs-kernel-server tftpd /etc/init.d/openbsd-inetd restart cd /srv debootstrap --foreign --arch armhf wheezy pc-utilite http://ftp.fr.debian.org/debian echo "/srv/pc-utilite 192.168.0.172(rw,no_root_squash)" >> /etc/exports /etc/init.d/nfs-kernel-server restart
You need to boot your PC Utilite.
mount -t vfat /dev/sda1 /mnt scp /mnt/uImage-cm-fx6 root@192.168.0.171:/srv/tftp/ cd /lib scp -r firmware modules root@92.168.0.171:/srv/pc-utilite/lib/
The PC Utilite comes with an usb serial RS232 cable, you must connect to it using screen or minicom. You have three seconds at boot time to stop uboot autoboot.
screen /dev/ttyUSB0 115200
Here is the following uboot command you should type to boot
setenv ipaddr 192.168.0.172 setenv serverip 192.168.0.171 setenv gateway 192.168.0.1 setenv netmask 255.255.255.0 setenv hostname pc-utilite saveenv setenv bootargs console=${console} root=/dev/nfs nfsroot=${serverip}:/srv/pc-utilite/ ip=${ipaddr}:${serverip}:${gateway}:${netmask}:${hostname} ${video} init=/bin/bash tftpboot ${loadaddr} ${kernel} && bootm ${loadaddr}
The system boot in a bash shell :
./debootstrap/debootstrap --second-stage passwd
On the server side you should edit the following files :
- /srv/pc-utilite/etc/hostname
- /srv/pc-utilite/etc/apt/sources.list
- /srv/pc-utilite/etc/inittab
echo "T0:2345:respawn:/sbin/getty -L ttymxc3 115200 vt100" >> /srv/pc-utilite/etc/inittab
Reboot the PC Utilite, stop autoboot and then
setenv bootargs console=${console} root=/dev/nfs nfsroot=${serverip}:/srv/pc-utilite/ ip=${ipaddr}:${serverip}:${gateway}:${netmask}:${hostname} ${video} setenv bootcmd "tftpboot ${loadaddr} ${kernel} && bootm ${loadaddr}" saveenv tftpboot ${loadaddr} ${kernel} && bootm ${loadaddr}
On the SSD
You need to install the NFSroot based system. In it then using cfdisk you partition your SSD :
cfdisk sfdisk -l /dev/sda Disk /dev/sda: 3892 cylinders, 255 heads, 63 sectors/track Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0 Device Boot Start End #cyls #blocks Id System /dev/sda1 0+ 30 31- 248976 83 Linux /dev/sda2 31 123 93 747022+ 82 Linux swap / Solaris /dev/sda3 124 609 486 3903795 83 Linux /dev/sda4 610 3892- 3283- 26366823 8e Linux LVM vgcreate pc-utilite /dev/sda4 lvcreate -n home -L4G pc-utilite lvcreate -n usr -L4G pc-utilite lvcreate -n var -L2G pc-utilite mkswap /dev/sda2 mkfs -t ext2 /dev/sda1 mkfs -t ext4 /dev/sda3 mkfs -t ext4 /dev/mapper/pc--utilite-usr mkfs -t ext4 /dev/mapper/pc--utilite-home mkfs -t ext4 /dev/mapper/pc--utilite-var mount -t ext4 /dev/sda3 /mnt mkdir /mnt/usr mount -t ext4 /dev/mapper/pc--utilite-usr /mnt/usr mkdir /mnt/home mount -t ext4 /dev/mapper/pc--utilite-home /mnt/home/ mkdir /mnt/var mount -t ext4 /dev/mapper/pc--utilite-var /mnt/var mkdir /mnt/boot mount -t ext2 /dev/sda1 /mnt/boot/ apt-get install debootstrap debootstrap wheezy /mnt/ http://ftp.fr.debian.org/debian scp 192.168.0.171:/srv/tftp/uImage-cm-fx6 /mnt/boot/ rmdir /mnt/lib/firmware cp -a /lib/firmware /mnt/lib cp -a /lib/modules /mnt/lib cp /etc/apt/sources.list /etc/apt/apt.conf /mnt/etc/apt/ echo "T0:2345:respawn:/sbin/getty -L ttymxc3 115200 vt100" >> /mnt/etc/inittab chroot /mnt/ passwd apt-get update apt-get upgrade apt-get install ssh apt-get install lvm2 dpkg-reconfigure tzdata
Edit /etc/fstab and /etc/network/interfaces :
cat /etc/fstab # <file system> <mount point> <type> <options> <dump> <pass> /dev/sda3 / ext4 errors=remount-ro 0 1 /dev/sda1 /boot ext2 defaults 0 2 /dev/mapper/pc--utilite-usr /usr ext4 defaults 0 2 /dev/mapper/pc--utilite-home /home ext4 defaults 0 2 /dev/mapper/pc--utilite-var /var ext4 defaults 0 2 proc /proc proc defaults 0 0 echo "auto eth0" >> /etc/network/interfaces echo "iface eth0 inet dhcp" >> /etc/network/interfaces sync exit umount /mnt/boot umount /mnt/var umount /mnt/usr umount /mnt/home umount /mnt reboot
Stop autoboot (again)
setenv bootcmd "sata init;ext2load sata 0 0x10800000 uImage-cm-fx6;run sataargs;bootm 0x10800000" saveenv sata init;ext2load sata 0 0x10800000 uImage-cm-fx6;run sataargs;bootm 0x10800000
X11 install
apt-get install xfce4 xserver-xorg xfonts-base startx
Works out of the box (with ?CompuLab kernel and firmware).
System Summary
lspci
lspci -nn
00:00.0 PCI bridge [0604]: Device [16c3:abcd] (rev 01)
01:00.0 Ethernet controller [0200]: Intel Corporation I211 Gigabit Network Connection [8086:1539] (rev 03)
New kernel
Compilation
Following How To Compile a custom kernel you can compile a new kernel using your wheezy pc-utilite. For utilite the recipe for utilite/devel branch and https://github.com/utilite-computer/linux-kernel host is successful up to uImage generation using :
make cm_fx6_defconfig make -j 4 zImage dtbs modules LOADADDR=0x10008000
Instead of the proposed
make cm_fx6_defconfig make -j 4 zImage dtbs modules
If you want to upgrade to jessie you should do a
make cm_fx6_defconfig make menuconfig make -j 4 zImage dtbs modules
and enable FHANDLE support which is needed by systemd AFAIK, for lvm you need CONFIG_BLK_DEV_DM=m.
Installation
kver=`make kernelrelease` cp ./arch/arm/boot/zImage /boot/zImage-${kver} cp arch/arm/boot/dts/*.dtb /boot/ make modules_install make firmware_install make headers_install INSTALL_HDR_PATH=/usr cp .config /boot/config-${kver}
u-boot new kernel
setenv bootm_low 0x15000000 sata init ext2load sata 0 0x10800000 zImage-3.10.17-cm-fx6-1-beta4-g9c89e6a ext2load sata 0 0x15000000 imx6q-cm-fx6.dtb run sataargs bootz 0x10800000 - 0x15000000
lsusb
lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub bDeviceClass 9 Hub bDeviceProtocol 1 Single TT iProduct 2 Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub bDeviceClass 9 Hub bDeviceProtocol 1 Single TT iProduct 2 Freescale On-Chip EHCI Host Controller Bus 002 Device 002: ID 0424:2514 Standard Microsystems Corp. USB 2.0 Hub bDeviceClass 9 Hub bDeviceProtocol 2 TT per port iProduct 0 bDeviceClass 9 Hub bDeviceProtocol 0 Full speed (or root) hub