Août 122016
 

Configurer le wifi en ligne de commande

nmtui

Mettre à jour et redémarrer l’engin

apt-get update -y && apt-get upgrade -y && init 6

Installer la gestion du point d’accès et la prise de contrôle a distance

apt-get install openssh-server

apt-get install dnsmasq hostapd
echo interface=wlan1 > /etc/dnsmasq.d/access_point.conf
echo except-interface=wlan0 >> /etc/dnsmasq.d/access_point.conf
echo dhcp-range=172.17.0.2,172.17.0.250,1h >> /etc/dnsmasq.d/access_point.conf
echo dhcp-option=1,255.255.255.0 >> /etc/dnsmasq.d/access_point.conf
echo dhcp-option=3,172.17.0.1 >> /etc/dnsmasq.d/access_point.conf
echo auto wlan1 >> /etc/network/interfaces
echo iface wlan1 inet static >> /etc/network/interfaces
echo address 172.17.0.1 >> /etc/network/interfaces
echo netmask 255.255.255.0 >> /etc/network/interfaces
ifup wlan1
/etc/init.d/dnsmasq restart
echo interface=wlan1 > /etc/hostapd.conf
echo driver=nl80211 >> /etc/hostapd.conf
echo ssid=PocketChip>> /etc/hostapd.conf
echo channel=1 >> /etc/hostapd.conf
echo ctrl_interface=/var/run/hostapd >> /etc/hostapd.conf
echo [Unit] > /lib/systemd/system/hostapd-systemd.service
echo Description=hostapd service >> /lib/systemd/system/hostapd-systemd.service
echo Wants=network-manager-service >> /lib/systemd/system/hostapd-systemd.service
echo After=network-manager-service >> /lib/systemd/system/hostapd-systemd.service
echo Wants=module-init-tools-service >> /lib/systemd/system/hostapd-systemd.service
echo After=module-init-tools-service >> /lib/systemd/system/hostapd-systemd.service
echo ConditionPathExists=/etc/hostapd.conf >> /lib/systemd/system/hostapd-systemd.service
echo [Service] >> /lib/systemd/system/hostapd-systemd.service
echo Restart=always >> /lib/systemd/system/hostapd-systemd.service
echo ExecStart=/usr/sbin/hostapd /etc/hostapd.conf >> /lib/systemd/system/hostapd-systemd.service
echo [Install] >> /lib/systemd/system/hostapd-systemd.service
echo WantedBy=multi-user.target >> /lib/systemd/system/hostapd-systemd.service
update-rc.d hostapd disable
systemctl daemon-reload
systemctl enable hostapd-systemd
init 6

Mettre a jour l’interface graphique du pocketchip

https://bbs.nextthing.co/t/pocket-home-marshmallow-edition/6579
https://github.com/o-marshmallow/PocketCHIP-pocket-home

wget -O installPocketHome.sh « https://drive.google.com/uc?export=download&id=0B1jRc4IqT9kiN0pfb3FGdlJtZjA »
chmod +x installPocketHome.sh
./installPocketHome.sh
init 6

Installer un Tools qui gère l’alimentation du CHIP comme un grand!

— Je vous invite a suivre ce post : génial. Version courte ci-dessous:

apt-get install i2c-tools
wget -O /usr/local/bin/blink.sh http://fordsfords.github.io/blink/blink.sh
chmod +x /usr/local/bin/blink.sh
wget -O /etc/systemd/system/blink.service http://fordsfords.github.io/blink/blink.service
systemctl enable /etc/systemd/system/blink.service
wget -O /usr/local/etc/blink.cfg http://fordsfords.github.io/blink/blink.cfg
service blink start

 

 

Août 122016
 

Totalement inspiré de http://www.raspibo.org/wiki/index.php/Compile_the_Linux_kernel_for_Chip:_my_personal_HOWTO
Pré-requis indispensable : un debian SID (unstable) 32 bit.

# Stocker l’IP du chip pour automatiser le reste des commandes.
# si scp ne fonctionne pas, installer openssh-client sur le chip et le PC
CHIP=10.254.0.6

apt-get install git build-essential fakeroot kernel-package zlib1g-dev libncurses5-dev lzop
apt-get install gcc-arm-linux-gnueabihf binutils-arm-linux-gnueabihf

mkdir -p /extra/tmp/chip/LINUX
cd /extra/tmp/chip/LINUX
git clone https://github.com/NextThingCo/CHIP-linux.git

cd /extra/tmp/chip/LINUX/CHIP-linux
git checkout -b debian/4.3.0-ntc-4 origin/debian/4.3.0-ntc-4

scp chip@$CHIP:/boot/config-4.3.0-ntc /extra/tmp/chip/LINUX/CHIP-linux

make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- menuconfig

## faire LOAD du fichier CONFIG copié depuis le CHIP.
## Ajouter iptables
# Networking >> Networking options >> Network packet filtering (replaces ipchains) >> Core Netfilter Configuration >> Netfilter Xtables support (required for ip_tables) and select the all following options as modules.
# Networking >> Networking options >> Network packet filtering (replaces ipchains) >> IP: Net Filter configurationS >> IP Tables support
## Ajouter un suffixe
# General setup —> () Local version – append to kernel release
# my personal suffix is NLE.
# sauver la config dans le fichier « .config »

### The parameter -j should be set to the number of cores of your computer + 1. I have an 4-core (2 real cores + 2 hyperthreads), so I use 5.
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -j 5

mkdir /tmp/lib
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- INSTALL_MOD_PATH=/tmp/lib modules_install

cd /extra/tmp/chip/LINUX
git clone https://github.com/NextThingCo/RTL8723BS.git
cd RTL8723BS
git checkout -b debian origin/debian
for i in debian/patches/0*; do echo $i; patch -p 1 <$i ; done

make -j 5 CONFIG_PLATFORM_ARM_SUNxI=y ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -C /extra/tmp/chip/LINUX/CHIP-linux/ M=$PWD CONFIG_RTL8723BS=m INSTALL_MOD_PATH=/tmp/lib
make -j 5 CONFIG_PLATFORM_ARM_SUNxI=y ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -C /extra/tmp/chip/LINUX/CHIP-linux/ M=$PWD CONFIG_RTL8723BS=m INSTALL_MOD_PATH=/tmp/lib modules_install

scp /extra/tmp/chip/LINUX/CHIP-linux/arch/arm/boot/zImage root@$CHIP:/boot/vmlinuz-4.3.0NLE+
scp /extra/tmp/chip/LINUX/CHIP-linux/.config root@$CHIP:/boot/config-4.3.0NLE+
scp /extra/tmp/chip/LINUX/CHIP-linux/System.map root@$CHIP:/boot/System.map-4.3.0NLE+
cd /tmp/lib/lib/modules
tar cf – 4.3.0NLE+ | ssh root@$CHIP ‘cd /lib/modules; tar xf -‘
cd ../firmware/
tar cf – . | ssh root@$CHIP ‘mkdir /lib/firmware/4.3.0NLE+; cd /lib/firmware/4.3.0NLE+; tar xf -‘

rm -rf /tmp/tar/
mkdir -p /tmp/tar/boot
cp /extra/tmp/chip/LINUX/CHIP-linux/arch/arm/boot/zImage /tmp/tar/boot/vmlinuz-4.3.0NLE+
# cp /extra/tmp/chip/LINUX/CHIP-linux/arch/arm/boot/zImage /tmp/tar/boot/zImage
cp /extra/tmp/chip/LINUX/CHIP-linux/.config /tmp/tar/boot/config-4.3.0NLE+
cp /extra/tmp/chip/LINUX/CHIP-linux/System.map /tmp/tar/boot/System.map-4.3.0NLE+

mkdir -p /tmp/tar/lib/modules/4.3.0NLE+
mkdir -p /tmp/tar/lib/firmware/4.3.0NLE+

cp -r /tmp/lib/lib/firmware/* /tmp/tar/lib/firmware/4.3.0NLE+
cp -r /tmp/lib/lib/modules /tmp/tar/lib/

cd /tmp/tar
rm /tmp/kernel.tar
tar -cf ../kernel.tar *
gzip ../kernel.tar

rcp /tmp/kernel.tar.gz $CHIP:/root/

sinon, à l’arrache :
kernel.tar.gz

wget -d –header= »User-Agent: Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11″ http://snakenet.eu/blog/wp-content/uploads/2016/08/kernel.tar.gz
cd /
tar -zxf ~/kernel.tar.gz

### Tester le nouveau kernel sans tout casser : se connecter en UART et lors du uBOOT, appuyer sur une touche, puis :

setenv boot_initrd ‘mtdparts; ubi part UBI; ubifsmount ubi0:rootfs; ubifsload $fdt_addr_r /boot/sun5i-r8-chip.dtb; ubifsload 0x44000000 /boot/initrd.uimage; ubifsload $kernel_addr_r /boot/vmlinuz-4.3.0NLE+; bootz $kernel_addr_r 0x44000000 $fdt_addr_r’
setenv boot_noinitrd ‘mtdparts; ubi part UBI; ubifsmount ubi0:rootfs; ubifsload $fdt_addr_r /boot/sun5i-r8-chip.dtb; ubifsload $kernel_addr_r /boot/vmlinuz-4.3.0NLE+; bootz $kernel_addr_r – $fdt_addr_r’

boot

### Pour nettoyer les conneries de ce f* kernel :

rm /boot/vmlinuz-4.3.0NLE+ /boot/config-4.3.0NLE+ /boot/System.map-4.3.0NLE+ /lib/firmware/4.3.0NLE+ /lib/modules/4.3.0NLE+
cp /boot/zImage.bak /boot/zImage

Juil 282016
 

#!/bin/sh
# Fortement inspiré de battery.sh
# a mettre dans /etc/init.d/monitorBattery.sh
# a configurer dans crontab :
# * * * * * /etc/init.d/monitorBattery.sh > /var/log/monitorBattery.log

#!/bin/sh
/usr/sbin/i2cset -y -f 0 0x34 0x82 0xC3

POWER_OP_MODE=$(/usr/sbin/i2cget -y -f 0 0x34 0x01)

BAT_EXIST=$(($(($POWER_OP_MODE&0x20))/32)) # divide by 32 is like shifting rigth 5 times
# echo « BAT_EXIST= »$BAT_EXIST

BAT_VOLT_MSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x78)
BAT_VOLT_LSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x79)

#echo $BAT_VOLT_MSB $BAT_VOLT_LSB
BAT_BIN=$(( $(($BAT_VOLT_MSB << 4)) | $(($(($BAT_VOLT_LSB & 0x0F)) )) ))

BAT_VOLT=$(echo « ($BAT_BIN*1.1) »|bc)
# echo « Battery voltage = « $BAT_VOLT »mV »

BAT_IDISCHG_MSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x7C)
BAT_IDISCHG_LSB=$(/usr/sbin/i2cget -y -f 0 0x34 0x7D)

BAT_IDISCHG_BIN=$(( $(($BAT_IDISCHG_MSB << 5)) | $(($(($BAT_IDISCHG_LSB & 0x1F)) )) ))

BAT_IDISCHG=$(echo « ($BAT_IDISCHG_BIN*0.5) »|bc)
# echo « Battery discharge current = « $BAT_IDISCHG »mA »

if [ $BAT_EXIST -eq 1 ]
then
echo « il y a une batterie »
if (( $(bc <<< « $BAT_IDISCHG > 50 ») ))
then
echo « la batterie se decharge… J’ai plus de courant »
if (( $(bc <<< « $BAT_VOLT < 3500 ») )) then echo « La batterie est faible, moins de 3,5 volt » echo  » Battery depleted.. Shutting down : $BAT_VOLT mV » `uptime -p` >> /var/log/monitorBattery.trc
echo « extinction »
init 0
else
echo « Battery voltage = « $BAT_VOLT »mV »
echo « Ca va, on continue, ca tient… »
echo  » On battery : $BAT_VOLT mV » `uptime -p` >> /var/log/monitorBattery.trc
uptime -p
fi
fi
fi

Juil 062016
 

Un émulateur NES
apt-get install fceux
Et pour le lancer :
nes
Oui, je sais, c’est trompeur

Un emulateur Gameboy
apt-get install gngb
Et pour le lancer :
gngb -o -a FICHIER_ROM.ZIP

Avoir l’écran tactile a l’endroit avec la version 4.4 du CHIP OS :
vi /usr/share/X11/xorg.conf.d/99.calibration.conf
Section "InputClass"
Identifier "calibration"
MatchProduct "1c25000.rtp"
Option "Calibration" "4055 41 3705 194"
Option "SwapAxes" "0"
EndSection

Source : https://bbs.nextthing.co/t/pocketchip-running-chip-4-4-gui/5319

sinon :

apt-get install xinput-calibrator xinput
xinput_calibrator --output-type xinput

sauver Pico 8
( find /usr -iname pico-8\* -exec tar rzvfp /var/tmp/pico8.tgz {} \; )
source : https://bbs.nextthing.co/t/pocketchip-running-chip-4-4-gui/5319/27

https://bbs.nextthing.co/t/pocketchip-running-chip-4-4-gui/5319/27

Juil 062016
 

Microsoft a changé sa méthode pour le rapatriement des GPO. Je vous passe les détails. Si vous voulez en savoir plus : https://support.microsoft.com/en-us/kb/3163622

Maintenant, si, comme moi, vous devez (à l’arrache) tripoter vos GPOs pour que ça refonctionne, voici un script PowerShell qui fait en sorte que ca fonctionne..

Si vous n’enlevez pas les commentaires, vous n’aurez qu’un audit…


$AuthenticatedUsers_NAME='Utilisateurs authentifiés'
$DomainComputers_NAME='Domain Computers'

foreach ($GPO in Get-GPO -All | sort displayname){
$permissions=Get-GPPermissions -Guid $GPO.Id -All

if ($GPO.user.Enabled -and $GPO.computer.Enabled ){
Write-Host $gpo.DisplayName "`t`t`t`tDOUBLE SECURITY :: Please, check !" -foregroundcolor cyan
}

if ($GPO.user.Enabled ){
Write-Host -nonewline $gpo.DisplayName USER
$permission=($permissions | where { $_.trustee.name -eq $AuthenticatedUsers_NAME } ).permission
if ($permission -eq 'GpoApply' -or $permission -eq 'GpoRead') {
Write-Host " : $permission" -foregroundcolor green
} else {
Write-Host "`t-- Missing USER permission --" -foregroundcolor RED
# Set-GPPermissions -Guid $GPO.Id -TargetName $AuthenticatedUsers_NAME -TargetType group -PermissionLevel GpoRead | out-null
}
}

if ($GPO.computer.Enabled ){
Write-Host -nonewline $gpo.DisplayName COMPUTER
$permission=($permissions | where { $_.trustee.name -eq $DomainComputers_NAME } ).permission
if ($permission -eq 'GpoApply' -or $permission -eq 'GpoRead') {
Write-Host " : $permission" -foregroundcolor green
} else {
Write-Host "`t-- Missing COMPUTER permission --" -foregroundcolor RED
# Set-GPPermissions -Guid $GPO.Id -TargetName $DomainComputers_NAME -TargetType group -PermissionLevel GpoRead | out-null

}
}
}

Avr 202016
 

cat /etc/init.d/low_bat_shutdown
#!/bin/bash

# LiPoPi

# Shut down the Pi if the GPIO goes high indicating low battery
# GPIO Port

gpio_port= »15″
# Enable GPIO

if [ ! -d « /sys/class/gpio/gpio$gpio_port » ]; then

  echo 15 > /sys/class/gpio/export || { echo -e « Can’t access GPIO $gpio_port » 1>&2; exit 1; }

fi
# Set it to input

echo « in » > /sys/class/gpio/gpio$gpio_port/direction || { echo -e « Can’t set GPIO $gpio_port to an input » 1>&2; exit 1; }
# Set it as active high

echo 0 > /sys/class/gpio/gpio$gpio_port/active_low || { echo -e « Can’t set GPIO $gpio_port to active high » 1>&2; exit 1; }
# If its low (low battery light is on), shutdown

if [ « `cat /sys/class/gpio/gpio$gpio_port/value` » != 1 ]; then

  echo « Shutting down due to low power `date` »

  /sbin/shutdown -h now || { echo -e « Can’t halt the system » 1>&2; exit 1; }

fi

Avr 202016
 

Tout se joue dans .bashrc

MON_IP=`ifconfig | grep ‘inet adr’| grep -v ‘127.0.0.1’ | cut -f 12-13 -d ‘ ‘ | cut -d: -f 2`

if [ « $color_prompt » = yes ]; then
    PS1=’${MON_IP} `/opt/vc/bin/vcgencmd measure_temp` ${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w \$\[\033[00m\] ‘

else

    PS1=’${MON_IP} `/opt/vc/bin/vcgencmd measure_temp` ${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ‘

fi

Mar 082016
 

Installer Raspbian comme d’habitude.

Configurer le réseau (wifi)
vi /etc/network/interfaces

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

vi /etc/wpa_supplicant/wpa_supplicant.conf

network={
ssid= »SSID »
psk= »MotDePasse »
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}

Installer Repetier-Server (armel)
wget http://download.repetier.com/files/server/debian-armel/Repetier-Server-0.70.1-Linux.deb
dpkg -i Repetier-Server-0.70.1-Linux.deb
update-rc.d RepetierServer defaults
service RepetierServer start

Redémarrer
init 6

Fév 012016
 

Dans mon environnement, se trouvent des « vieux » ESX(i)s 4.1 qui se font régulièrement jeter par le vCenter.
Après avoir fait les vérifications de base (firewall, heartbeat,…), nous avons constaté que le problème venait de la vérification des certificats SSL.
Windows vérifie régulièrement que les certificats utilisés ne sont pas sur une liste de certificats révoqués. Pour ce faire, le PC (dans ce cas ci, le vCenter) se connecte chez Microsoft pour obtenir cette liste.
Or, nous n’avons pas autorisé cette connexion réseau, et donc, timeout, et le vcenter continue sa vie sans probleme.

MAIS, dernièrement, notre équipe réseau préférée a fait un changement dans la topologie et maintenant, les paquets ne sont plus justes droppés, mais rebondissent entre 2 routeurs jusqu’à la fin de leur TTL. Et donc, le timeout dure plus longtemps que prévu… et vCenter (et les ESX(i)s 4.1) n’aiment pas ça du tout.

Nous avons donc désactivé la Policy qui vérifie cette liste de certificats révoqués, et… plus AUCUN problème.

La Policy :
Local Computer Policy
-> Computer configuration
–> Windows Settings
—> Security Settings
—-> Public key Policies
====> Certificate Path Validation Settings
=====> Network retrieval
======> Define these Policy settings : aucune case cochée.

Bon, c’est moins sécurisé, mais… ça fonctionne.

Jan 292016
 

Si vous tentez d’ouvrir une console via la ligne de commande PowerShell et que vous avez cette erreur :

get-vm MGMT | Open-VMConsoleWindow
Open-VMConsoleWindow : 29-01-16 11:44:00    Open-VMConsoleWindow        Unable to find the specified browser: "C:\".
Au caractère Ligne:1 : 15
+ get-vm MGMT | Open-VMConsoleWindow
+               ~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : InvalidArgument : (:) [Open-VMConsoleWindow], InvalidArgument
+ FullyQualifiedErrorId : ViCore_ViCoreServiceImpl_GetVMConsoleWindowBrowser_FileNotFound,VMware.VimAutomation.ViCore.Cmdlets.Commands.OpenVMConsoleWindow

C’est que PowerCli ne sait pas quel browser utiliser (ouais… super le message d’erreur, hein !)
Dans ce cas, configurez le browser à utiliser via une des deux commandes suivantes (en fonction de vos préference). Cette action est à exécuter avec des droits d’administrateur.

Notez que vous devez indiquer la version 32 bit du browser !

Internet Explorer
Set-PowerCLIConfiguration –VMConsoleWindowBrowser 'C:\Program Files (x86)\Internet Explorer\iexplore.exe'
Firefox
Set-PowerCLIConfiguration –VMConsoleWindowBrowser “C:\Program Files (x86)\Mozilla Firefox\firefox.exe”