Déc 222017
 
#!/bin/sh
# This program gets the battery info from PMU
# Voltage and current charging/discharging
#
# Nota : temperature can be more than real because of self heating
#######################################################################
# Copyright (c) 2014 by RzBo, Bellesserre, France
#
# Permission is granted to use the source code within this
# file in whole or in part for any use, personal or commercial,
# without restriction or limitation.
#
# No warranties, either explicit or implied, are made as to the
# suitability of this code for any purpose. Use at your own risk.
#######################################################################

# force ADC enable for battery voltage and current
#i2cset -y -f 0 0x34 0x82 0xC3
i2cset -y -f 0 0x34 0x82 0xff

################################
#read Power status register @00h
POWER_STATUS=$(i2cget -y -f 0 0x34 0x00)
#echo $POWER_STATUS

BAT_STATUS=$(($(($POWER_STATUS&0x02))/2)) # divide by 2 is like shifting rigth 1 times
#echo $(($POWER_STATUS&0x02))
echo "BAT_STATUS="$BAT_STATUS
# echo $BAT_STATUS

################################
#read Power OPERATING MODE register @01h
POWER_OP_MODE=$(i2cget -y -f 0 0x34 0x01)
#echo $POWER_OP_MODE

CHARG_IND=$(($(($POWER_OP_MODE&0x40))/64)) # divide by 64 is like shifting rigth 6 times
#echo $(($POWER_OP_MODE&0x40))
echo "CHARG_IND="$CHARG_IND
# echo $CHARG_IND

[ $(($POWER_STATUS & 0x80)) -ne 0 ] && {
 echo "ACIN Present"
 ACIN_VOLT_MSB=$(i2cget -y -f 0 0x34 0x56)
 ACIN_VOLT_LSB=$(i2cget -y -f 0 0x34 0x57)
 ACIN_BIN=$(( $(($ACIN_VOLT_MSB << 4)) | $(($(($ACIN_VOLT_LSB & 0x0F)) )) ))
 ACIN_VOLT=$(echo "($ACIN_BIN*1.7)"|bc)
 echo " ACIN voltage = "$ACIN_VOLT"mV"

ACIN_I_MSB=$(i2cget -y -f 0 0x34 0x58)
 ACIN_I_LSB=$(i2cget -y -f 0 0x34 0x59)
 ACIN_I_BIN=$(( $(($ACIN_I_MSB << 4)) | $(($(($ACIN_I_LSB & 0x0F)) )) ))
 ACIN_I=$(echo "($ACIN_I_BIN*0.625)"|bc)
 echo " ACIN current = "$ACIN_I"mA"
}
[ $(($POWER_STATUS & 0x20)) -ne 0 ] && {
 echo "VBUS Present"
 VBIN_VOLT_MSB=$(i2cget -y -f 0 0x34 0x5a)
 VBIN_VOLT_LSB=$(i2cget -y -f 0 0x34 0x5b)
 VBIN_BIN=$(( $(($VBIN_VOLT_MSB << 4)) | $(($(($VBIN_VOLT_LSB & 0x0F)) )) ))
 VBIN_VOLT=$(echo "($VBIN_BIN*1.7)"|bc)
 echo " VBUS voltage = "$VBIN_VOLT"mV"

VBIN_I_MSB=$(i2cget -y -f 0 0x34 0x5c)
 VBIN_I_LSB=$(i2cget -y -f 0 0x34 0x5d)
 VBIN_I_BIN=$(( $(($VBIN_I_MSB << 4)) | $(($(($VBIN_I_LSB & 0x0F)) )) ))
 VBIN_I=$(echo "($VBIN_I_BIN*0.375)"|bc)
 echo " VBUS current = "$VBIN_I"mA"
}

################################
#read Charge control register @33h
CHARGE_CTL=$(i2cget -y -f 0 0x34 0x33)
echo "CHARGE_CTL="$CHARGE_CTL
# echo $CHARGE_CTL


################################
#read Charge control register @34h
CHARGE_CTL2=$(i2cget -y -f 0 0x34 0x34)
echo "CHARGE_CTL2="$CHARGE_CTL2
# echo $CHARGE_CTL2

###################
#read internal temperature 5eh, 5fh -144.7c -> 000h, 0.1c/bitFFFh -> 264.8c
TEMP_MSB=$(i2cget -y -f 0 0x34 0x5e)
TEMP_LSB=$(i2cget -y -f 0 0x34 0x5f)

# bash math -- converts hex to decimal so `bc` won't complain later...
# MSB is 8 bits, LSB is lower 4 bits
TEMP_BIN=$(( $(($TEMP_MSB << 4)) | $(($(($TEMP_LSB & 0x0F)) )) ))

TEMP_C=$(echo "($TEMP_BIN*0.1-144.7)"|bc)
echo "Internal temperature = "$TEMP_C"c"

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

[ $BAT_EXIST -ne 0 ] && {
################################
#read battery voltage 79h, 78h 0 mV -> 000h, 1.1 mV/bit FFFh -> 4.5045 V
BAT_VOLT_MSB=$(i2cget -y -f 0 0x34 0x78)
BAT_VOLT_LSB=$(i2cget -y -f 0 0x34 0x79)

#echo $BAT_VOLT_MSB $BAT_VOLT_LSB
# bash math -- converts hex to decimal so `bc` won't complain later...
# MSB is 8 bits, LSB is lower 4 bits
BAT_BIN=$(( $(($BAT_VOLT_MSB << 4)) | $(($(($BAT_VOLT_LSB & 0x0F)) )) ))

BAT_VOLT=$(echo "($BAT_BIN*1.1)"|bc)
echo " Battery voltage = "$BAT_VOLT"mV"


###################
#read Battery Discharge Current 7Ch, 7Dh 0 mV -> 000h, 0.5 mA/bit 1FFFh -> 1800 mA
#AXP209 datasheet is wrong, discharge current is in registers 7Ch 7Dh
#13 bits
BAT_IDISCHG_MSB=$(i2cget -y -f 0 0x34 0x7C)
BAT_IDISCHG_LSB=$(i2cget -y -f 0 0x34 0x7D)

#echo $BAT_IDISCHG_MSB $BAT_IDISCHG_LSB

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"

###################
#read Battery Charge Current 7Ah, 7Bh 0 mV -> 000h, 0.5 mA/bit FFFh -> 1800 mA
#AXP209 datasheet is wrong, charge current is in registers 7Ah 7Bh
#(12 bits)
BAT_ICHG_MSB=$(i2cget -y -f 0 0x34 0x7A)
BAT_ICHG_LSB=$(i2cget -y -f 0 0x34 0x7B)

#echo $BAT_ICHG_MSB $BAT_ICHG_LSB

BAT_ICHG_BIN=$(( $(($BAT_ICHG_MSB << 4)) | $(($(($BAT_ICHG_LSB & 0x0F)) )) ))

BAT_ICHG=$(echo "($BAT_ICHG_BIN*0.5)"|bc)
echo " Battery charge current = "$BAT_ICHG"mA"

FUEL_GAUGE=$(i2cget -y -f 0 0x34 0x0b9)
 FUEL_GAUGE=$(($FUEL_GAUGE&0x7f))
 echo " Fuel Gauge=$FUEL_GAUGE%"
}
Nov 272017
 

create administrative account

useradd MyUsername -s /bin/bash
echo MyUsername:MyVerySecurePassword | chpasswd
mkdir /home/MyUsername
chown MyUsername /home/MyUsername
useradd MyUsername sudo

Prevent root from login using SSH

sed -i ‘s/PermitRootLogin yes/PermitRootLogin no/g’ /etc/ssh/sshd_config

Install programs

apt-get update
apt-get install xrdp mate-core mate-desktop-environment mate-notification-daemon tigervnc-standalone-server

/etc/init.d/xrdp stop
/etc/init.d/xrdp start

Tune XRDP tu use XVNC in priority

vi /etc/xrdp/xrdp.ini and permut Xorg and Xvnc block’s in the config file.

[Xvnc]
name=Xvnc
lib=libvnc.so
username=ask
password=ask
ip=127.0.0.1
port=-1
#xserverbpp=24
#delay_ms=2000

[Xorg]
name=Xorg
lib=libxup.so
username=ask
password=ask
ip=127.0.0.1
port=-1
code=20

Sécuriser le tout

apt-get install fail2ban

Install Firefox and test performance…

apt-get install firefox-esr firefox-esr-l10n-fr

Faire de la place sur le disque

On a un petit VPS, autant économiser la place…

apt-get clean

Tuning

cd /etc/xrdp
wget « http://snakenet.eu/blog/wp-content/uploads/2017/11/logo.bmp » –header= »User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:23.0) Gecko/20100101 Firefox/23.0″
xrdp.ini :
ls_top_window_bg_color=1a4384
ls_height=350
ls_bg_color=e4e3e8
ls_btn_ok_y_pos=300
ls_btn_cancel_y_pos=300

/etc/init.d/xrdp stop && /etc/init.d/xrdp start

Oct 072017
 

Analogie avec le déplacement physique classique

Pour se déplacer dans le monde physique, on applique une force sur le monde physique par rapport à nous même.

Exemple : quand on marche, on appuie sur nos jambes qui sont fixées sur le sol: on se déplace

Pour se déplacer dans le temps, c’est la même idée. Il faut appliquer une force sur le temps.

1ère question: qu’est ce qui peut manipuler le temps.

Einstein nous l’a expliqué, le temps est déformé par la gravitation. Elle permet au temps de s’écouler plus ou moins vite. (Astronautes dans l’espace n’ont pas vu le même temps s’écouler)

2ème question: comment manipuler la gravitation.

Ce serait sympa de savoir car ça permettrait aussi de faire des voitures volantes 🙂

-> je ne sais pas encore… mais je cherche

Fév 102017
 

Installer openVPN

apt-get install openvpn

Creer un fichier de connexion <MyHouse.conf>

dev tun
tls-client
remote MYHOME.FQDN.NET 1194
#float
redirect-gateway def1
pull
proto udp
script-security 2
comp-lzo 
reneg-sec 0 
auth-user-pass 
auth-nocache 
script-security 2 
up /root/MyHouse.script
 <ca> -----BEGIN CERTIFICATE----- ... -----END CERTIFICATE----- </ca>

Créer un fichier avec le user et mot de passe <MyHouse.pass>

MyUsername
MySecurePassword

Et pour se connecter ??? openvpn –config MyHouse.conf  –auth-user-pass MyHouse.pass

MyHouse.script ::
sysctl -w net.ipv4.ip_forward=1
sysctl -p /etc/sysctl.conf
/sbin/iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
Mais avec ca, je n’ai pas accès a mon réseau local… a creuser.
J’ai accès à tout le reste sauf mon réseau local…
root@chip:~# cat check_internet.sh
 #!/bin/bash
 echo This script will check if an internet connection is available. if Yes : Bring OpenVPN up
 echo if NOT, check if openvpn is UP. if yes, kill it.

let google=0
 for i in { 0..5 }
 do
 ping -c 4 8.8.8.8 > /dev/null 2>&1
 if [ $? -eq 0 ] ; then
 let google++
 fi

done

if [ $google -gt 2 ] ; then
 echo Google is available... at least 2/5
 openvpn=` ps -ef | grep -i openvpn |grep -v grep| wc -l`
 if [ $openvpn -eq 0 ] ; then
 /usr/sbin/openvpn --config /root/maison.openvpn.conf  --auth-user-pass /root/maison.openvpn.pass  2>&1 &
 else
 echo OpenVPN is allready UP. Do not touch it
 fi
 else
 echo Google is not available. Kill tunnel
 killall openvpn
 fi

crontab

* * * * * /root/check_internet.sh > /root/check_internet.log
Oct 142016
 

Vous allez dans Azure? Vous voulez utiliser un mot de passe super complexe? et bien non !
En effet, les règles de Microsoft sont : entre 8 et 16 caractères et pas de caractères spéciaux trop spéciaux.

Selon mes tests, ces caractères ne passent pas : ù, µ, £, €, à, é, §, è, ç, à, ², ³

Pire! Si vous faites un reset password, et que lors du changement de mot de passe, vous en mettez un « trop » sécurisé, vous saurez vous connecter une fois, mais plus les fois suivantes!

Par contre, ABCdef123 est considéré par MS comme un mot de passe « fort » !

Merci Microsoft !!!!!

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
 

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

Jan 162015
 

J’ai fait l’acquisition d’une Surface Pro 3 et cette s***** ne tient pas la batterie. Les commandes suivantes m’ont indiqu?s certaines choses utiles:

powercfg /sleepstudy

le rapport m’indique que le p?riph?rique suivant bouffe toutes les ressources :

"Contr?leur d?h?te compatible xHCI USB (\_SB.PCI0.XHC)"

On dirait mon contr?leur disque…

Cette commande me montre l’?volution de ma batterie dans le temps :

powercfg /batteryreport
16:05:56 Connected standby Battery 90 % 37 mWh
21:23:56 Active Battery 61 % 24 mWh

Donc, en 5 heures, il a vid? 30% de ma batterie…

Je vais contacter Microsoft.