From Gzav's Wiki

RaspberryPi: Pc Duino

PcDuino v2




Installation


Un tuto clair en 20 lignes car ce n'est pas monnaie courante sur le site de linksprite.


Pour une installation le 19 février 2015 d'Ubuntu sur la NAND :

# téléchargement de l'image du kernel
wget https://s3.amazonaws.com/pcduino/Images/v2/pcduino_a10_kernel_dd_20150211.zip
unzip pcduino_a10_kernel_dd_20150211.zip

# téléchargement de l'image d'ubuntu
wget https://s3.amazonaws.com/pcduino/Images/2013-11-26/pcduino_ubuntu_20131126.7z
7zr e pcduino_ubuntu_20131126.7z

# Insérer la carte SD dans votre lecteur et repérer les points de montage / identifiants des devices
tail /var/log/syslog

# ici la ligne qui nous permet d'identifier la carte SD est la suivante (noter le device) : 
# > Feb 19 23:01:10 mycomputer udisksd[2581]: Mounted /dev/sdj1 at /media/userxxx/9016-4EF8 on behalf of uid 1000

# Initialiser le nom du device
SDDEV=/dev/sdj1

# démonter la carte SD
sudo umount $SDDEV

# copie de l'image du kernel sur la carte SD
sudo dd if=pcduino_a10_kernel_dd_20150211.img of=$SDDEV bs=1M
sudo sync

# Débrancher le PcDuino
# Retirer la carte SD de votre PC 
# Insérer la carte SD dans le PcDuino
# Brancher le PcDuino
# ...
# Le clignotement des voyants RX/TX vous indiquera les opérations en cours de réalisation :
# RX            | TX            | Operation detail
# blinking slow | no blinking   | system boot succeed, checking update package from sdcard and udisk
# blinking fast | no blinking   | updating from sdcard/udisk
# blinking fast | blinking fast | update failed
# blinking slow | blinking slow | update succeed

# Une fois la mise à jour du kernel réalisée
# Eteindre le PcDuino
# Reconnecter la carte SD à votre PC (on présume qu'elle aura été réinsérée dans le même lecteur / même emplacement)

# au besoin formatez votre carte SD avec GParted (ou autre)

# copie de l'image d'Ubuntu sur la carte SD
cp pcduino_ubuntu_20131126.img update.sh /media/le-point-de-montage-de-votre-carte-sd

# Allumez votre PcDuino
# L'écran doit à ce moment chercher une carte SD ou clé USB contenant une image (fichier *.img) et un fichier "update.sh"
# Reconnecter la carte SD au PcDuino
# Attendre 10mn comme demandé que l'update se termine
# Retirer la carte SD et rebooter le PcDuino


1er Boot Ubuntu


Taper CTRL+ALT+F1 pour passer en mode console.


Le but est de retirer :

# Modifier les préférences de base
board-config.sh

# > clavier FR (ou utiliser la commande 'dpkg-reconfigure keyboard-configuration')
# > timezone Paris
# > boot CLI

# update
apt-get update
apt-get install aptitude vim

# Commenter les dépôts www.wiimu.com (très très lent pour des plugins graphiques uniquement) dans /etc/apt/source.list
vim /etc/apt/source.list

# récupération d'espace disque
/etc/init.d/lightdm stop
aptitude purge xserver-xorg-core
aptitude purge abiword pcduino-xbmc

# suppression gestionnaire réseau (le réseau sera reconfiguré après)
aptitude purge network-manager network-manager-gnome

# A tester
# apt-get purge x11* server-x11*
# apt-get autoremove
# dpkg --get-selections | grep deinstall | cut -f1 | xargs dpkg -P
aptitude purge x11-aptitude purge lightdm x11-xserver-utils x11vnc lxterminal lxsession lxrandr lxlauncher lxpanel openbox xbmc xscreensaver xauth x11-xkb-utils lubuntu-default-settings gtk2-engines-murrine gtk3-engines-unico im-switchxserver-utils libglib2.0-bin libgtop2-7 libgtop2-common libstartup-notification0 libxcb-util0 xfonts-base xfonts-utils libxfont1 libxkbfile1 xfonts-encodings xorg-docs-core

# > pour finir le travail : ouvrir "aptitude" et supprimer les paquets inutiles


Passage en Ubuntu 14.04 (Trusty)


Au préalable, backuper la NAND sur la micro-SD :

board-config.sh


Mettre à jour le système actuel (precise) :

aptitude update
aptitude upgrade


Dans /etc/apt/sources.list, remplacer 'precise' par 'trusty' puis lancer la mise à jour :

aptitude update
aptitude upgrade



# changement du mot de passe root
passwd

# suppression de l'auto-login en root
rm /etc/init/openvt.conf

# suppression du réseau USB
aptitude purge isc-dhcp-server
rm /etc/init.d/auto-serial-console.conf

# Supprimer / commenter l'appel au script enable_otg (ligne 21) et le démarrage du réseau USB avec ''dhcpd'' (ligne 25)
vim /etc/rc.local

# Purge des paquets de langue chinois (gnome + ...), x11, gnome
aptitude purge ~i ~n .*-zh-*
aptitude purge ~i ~n .*x11.*
aptitude purge ~i ~n .*gnome.*

# suppression du cache d'aptitude
aptitude autoclean

# modification du nom de l'hôte par défaut (ubuntu) en "pcduino"
sed -ri s~ubuntu~pcduino~ /etc/hostname
sed -ri s~ubuntu~pcduino~ /etc/hosts


# backup du système propre
board-config.sh
> backup SD


# ajout d'un utilisateur
adduser %USER%
password %USER%

# config réseau manuelle
echo "auto lo" > /etc/network/interfaces
echo "iface lo inet loopback" >> /etc/network/interfaces
echo "auto eth0" >> /etc/network/interfaces
echo "allow-hotplug eth0" >> /etc/network/interfaces
echo "iface eth0 inet dhcp" >> /etc/network/interfaces
/etc/init.d/networking restart

# config wiki : cf https://wiki.debian.org/WiFi/HowToUse#Command_Line

# ssh
aptitude install ssh
# A tester : sed -ri s/PermitRootLogin yes/PermitRootLogin no/

# utilitaires de base
aptitude install sysv-rc vim 

# mise à l'heure
aptitude install ntp ntpdate
service ntp stop
ntpdate ntp.unicaen.fr
service ntp start

# lighttpd + php
aptitude install lighttpd php5-fpm
# > https://www.howtoforge.com/installing-lighttpd-with-php5-php-fpm-and-mysql-support-on-debian-wheezy

# enable GPIO
modprobe gpio                   # now you should see /sys/devices/virtual/misc/gpio/*
echo "gpio" >> /etc/modules     # verify that /etc/modules last line is "gpio" with `tail -n 2 /etc/modules`
shutdown -r now                 # check that gpio module is loaded after reboot : `lsmod | grep gpio`

# enable UART on gpio0(RX) & gpio1(TX) - "on the fly method"
echo "3" > /sys/devices/virtual/misc/gpio/mode/gpio0
echo "3" > /sys/devices/virtual/misc/gpio/mode/gpio1
# to enable definitely UART on /dev/ttyS1 : compile setuart2.c (gcc -o setuart2 setuart2.c) and call it in /etc/rc.local
# @see https://github.com/lightisright/rpi-stuff.git (pcduino directory)
# @see http://forum.linksprite.com/index.php?/topic/3567-uart-problems/

# =======================================
# Configure /dev/ttyS1 for TELEINFO-EDF
# =======================================
# In /etc/rc.local, add following lines
# > /opt/setuart2 on
# > stty -F /dev/ttyS1 1200 sane evenp parenb cs7 -crtscts
# =======================================

# Install stuff for teleinfo-edf scripts
aptitude install php5 php5-cli php5-sqlite
# Configure teleinfo-edf device ($dev var)
vim teleinfo_func.php



Mise à jour suite plantage

http://castman.unblog.fr/2014/01/08/procedure-de-maj-du-kernel-et-de-lubuntu-sous-pcduino-v2-suite-a-un-plantage/


J'ai dû utiliser LiveSuit sur une vieille VM sour XP (impossible de faire reconnaitre le PcDuino sur un Windows Seven - driver incompatible il me semble) sans oublier d'utiliser le firmware spécifique pour LiveSuit (ne pas utiliser celui pour dd).

On peut ensuite tout reprendre à 0 : installation d'Ubuntu 12.07 puis suppression de l'interface graphique puis upgrade vers Ubuntu 14.04


TroubleShooting


isc-dhcp-server


Erreurs rencontrées dans les logs


dmesg


Donne le résultat suivant :

[   12.650000] ADDRCONF(NETDEV_UP): eth0: link is not ready
[   14.690000] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   14.730000] wemac wemac.0: eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
[   16.080000] init: failsafe main process (413) killed by TERM signal
[   16.310000] init: network-manager main process (639) terminated with status 127
[   16.310000] init: network-manager main process ended, respawning
[   18.270000] init: isc-dhcp-server main process (745) terminated with status 1
[   18.270000] init: isc-dhcp-server main process ended, respawning
[   18.740000] init: isc-dhcp-server main process (802) terminated with status 1
[   18.740000] init: isc-dhcp-server main process ended, respawning
[   19.050000] init: isc-dhcp-server main process (815) terminated with status 1
[   19.050000] init: isc-dhcp-server main process ended, respawning
[   19.290000] init: isc-dhcp-server main process (834) terminated with status 1
[   19.290000] init: isc-dhcp-server main process ended, respawning
[   20.050000] init: isc-dhcp-server main process (847) terminated with status 1
[   20.050000] init: isc-dhcp-server main process ended, respawning
[   20.270000] init: isc-dhcp-server main process (878) terminated with status 1
[   20.270000] init: isc-dhcp-server main process ended, respawning
[   21.020000] init: isc-dhcp-server main process (886) terminated with status 1
[   21.020000] init: isc-dhcp-server main process ended, respawning
[   21.740000] init: isc-dhcp-server main process (894) terminated with status 1
[   21.740000] init: isc-dhcp-server main process ended, respawning
[   21.910000] init: isc-dhcp-server main process (902) terminated with status 1
[   21.910000] init: isc-dhcp-server main process ended, respawning
[   22.130000] init: isc-dhcp-server main process (910) terminated with status 1
[   22.130000] init: isc-dhcp-server main process ended, respawning
[   23.950000] init: isc-dhcp-server main process (918) terminated with status 1
[   23.950000] init: isc-dhcp-server main process ended, respawning
[   24.140000] init: plymouth-upstart-bridge main process ended, respawning
[   24.400000] init: isc-dhcp-server main process (938) terminated with status 1
[   24.400000] init: isc-dhcp-server main process ended, respawning
[   24.530000] init: isc-dhcp-server main process (951) terminated with status 1
[   24.530000] init: isc-dhcp-server main process ended, respawning
[   24.730000] eth0: no IPv6 routers present
[   25.200000] init: isc-dhcp-server main process (959) terminated with status 1
[   25.200000] init: isc-dhcp-server main process ended, respawning
[   25.330000] init: isc-dhcp-server main process (967) terminated with status 1
[   25.330000] init: isc-dhcp-server main process ended, respawning
[   25.470000] init: isc-dhcp-server main process (975) terminated with status 1
[   25.470000] init: isc-dhcp-server main process ended, respawning
[   25.600000] init: isc-dhcp-server main process (983) terminated with status 1
[   25.600000] init: isc-dhcp-server main process ended, respawning
[   25.730000] init: isc-dhcp-server main process (991) terminated with status 1
[   25.730000] init: isc-dhcp-server main process ended, respawning
[   25.870000] init: isc-dhcp-server main process (999) terminated with status 1
[   25.870000] init: isc-dhcp-server main process ended, respawning
[   25.990000] init: isc-dhcp-server main process (1007) terminated with status 1
[   25.990000] init: isc-dhcp-server main process ended, respawning
[   26.120000] init: isc-dhcp-server main process (1015) terminated with status 1
[   26.120000] init: isc-dhcp-server respawning too fast, stopped


Fixé par :

aptitude purge isc-dhcp-server

> Erreur de syntaxe dans la procédure d'install (corrigé)


SSH

Problème de connexion après 1/2 jours, pour tous les utilisateurs, avec selon le moment le msg suivant :

Connexion reset by pear

ou

Connexion closed by remote host

E/C de résolution


Lighttpd

Problème de création du fichier /var/log/lighttpd/error.log au démarrage du service

mkdir /var/log/lighttpd
chown www-data. /var/log/lighttpd
service lighttpd start


> intégré au /etc/rc.local :

# ======================================================
# LIGHTTPD FIX
# ======================================================
mkdir /var/log/lighttpd
chown www-data. /var/log/lighttpd


Hardware

OS

Réseau



Retrieved from http://www.ubbdf.fr/pmwiki/RaspberryPi/PcDuino
Page last modified on August 27, 2015, at 07:44 AM