Stephan
Hallo Matthias,
ich habe ein Memup PocketPad, was dem Touchlet PMT-43 sehr ähnlich zu sein scheint (bis auf die zusätzliche Webcam und mehr internen Speicher).
Könntest du vielleicht ein Tutorial erstellen, wie du das Debian auf das Touchlet bekommen hast?
Das wär echt toll. ;)
Vielen Dank!
Hallo,
in der Tat findet sich bei den Logos auch das vom PocketPad.
Mit mehr Speicher ist das sicherlich auch mit weniger Mühen verbunden.
Mit ein wenig Linuxwissen ist es nicht so sehr schwer.
Vom Prinzip her: (immer wenn ich mmc schreibe, meine ich sdcard)
(Empfehlung: statt ständig sudo, einmal sudo su - machen und alles als root.)
(Empfehlung2: mach Dir wie ich eine /boot/matz sektion, die in ihrer params datei init=/matz ansteuert.
hacke dann binär (hexedit) die von init nach matz kopierte datei und stelle den String init.rc auf matz.rc um.
dann kannst Du ein mini-Android starten ohne die grafischen dienste und z.B. den nand-dump vorab schonmal machen.)
- debootstrap auf mmc-karte mit ext4, die in /media/debootstrap
manuell gemountet ist
1sudo mkfs.ext4 -L debootstrap /dev/sdb1
2sudo mount /dev/sdb1 /media/debootstrap
1sudo debootstrap --include=gawk,chrootuid,wireless-tools,aptitude,wpasupplicant,bash,apt-utils,binutils,coreutils,less,netbase,ntpdate,ifupdown,openssh-server,openssh-client,rsync --arch=armel --foreign wheezy /media/debootstrap ftp://ftp.de.debian.org/debian
- den nand dumpen:
1adb shell dd if=/dev/block/nanda of=/mnt/extern_sd/nanda
2adb shell dd if=/dev/block/nandb of=/mnt/extern_sd/nandb
3adb shell dd if=/dev/block/nandc of=/mnt/extern_sd/nandc
4adb shell dd if=/dev/block/nandd of=/mnt/extern_sd/nandd
5adb shell dd if=/dev/block/nande of=/mnt/extern_sd/nande
die nand-dateien auf meinen
linuxrechner holen:
1adb pull /mnt/extern_sd/nanda
2adb pull /mnt/extern_sd/nandb
3adb pull /mnt/extern_sd/nandc
4adb pull /mnt/extern_sd/nandd
5adb pull /mnt/extern_sd/nande
nanda := /boot
nandb := /
nandc := /system
nandd := /data
nande := /sdcard
- die nand* dateien mounten zum kopieren:
1mkdir mb mc md
2sudo mount -oloop nandb mb
3sudo mount -oloop nandc mc
4sudo mount -oloop nandd md
- gesamtes Dateisystem vom Android parallel dazu auf die mmc
1cd mb ; rsync -avulh * /media/debootstrap/; cd ..
2cd mc; rsync -avulh * /media/debootstrap/system; cd ..
3cd md ; rsync -avulh * /media/debootstrap/data; cd ..
- die /media/debootstrap/init.rc anpassen, dass keine grafik mehr gestartet wird:
1* die nand* - mountbefehle müssen raus, dafür der boot wieder rein, damit man mal was ändern kann. (sektion on fs)
2* alle sektionen und unnötigen dienste raus: servicemanager, debuggerd, zygote, media, installd, racoon, mtpd, keystore, dumpstate
- das wlan zum laufen bringen mit wpa_supplicant:
/media/debootstrap/wpa_supplicant.conf:
1ctrl_interface=/var/run/wlan0
2update_config=1
3network={
4 ssid="<NETWORK_SSID_NAME>"
5 key_mgmt=WPA-PSK
6 proto=WPA2
7 pairwise=CCMP TKIP
8 group=CCMP TKIP
9 psk="<YOUR_PASSWORD>"
10}
/media/debootstrap/etc/network/interfaces:
1auto lo
2iface lo inet loopback
3
4auto wlan0
5iface wlan0 inet dhcp
6 pre-up /sbin/wpa_supplicant -B -c/wpa_supplicant.conf -Dwext -C/var/run/wlan0 -iwlan0
- den memkiller killen in der /media/debootstrap/init.rc
1write /sys/module/lowmemorykiller/parameters/minfree 0,0,0,0,0,0
wenn man dann auf native debian ist, muss man das mit echo in die /sys schreiben (in der rc.local:
1echo 0,0,0,0,0,0 > /sys/module/lowmemorykiller/parameters/minfree
geht evtl. auch mit sysctl.
- mit adb shell auf der gemounteten nande-partition ein swapfile einrichten:
1mkdir -p /swap
2mount -t vfat /dev/block/nande /swap
3export PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH # kannste auch in dir rc.local schreiben.
4dd if=/dev/zero of=/swap/swap bs=1024000 count=128 # oder 256MB geht auch, mehr ist nicht nötig.
5mkswap /swap/swap # der geht nur mit den binaries auf der sdcard
6swapon /swap/swap # der hier auch
- der mount und der swapon-befehl kommt dann auch in die /media/debootstrap/etc/rc.local
- jetzt macht man den debootstrap --second-stage
1adb shell
2cd /debootstrap
3export PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH
4./debootsrap --second-stage
- module laden für den xserver (am besten in der /etc/rc.local)
1/sbin/insmod drivers/misc/eeprom/eeprom_93cx6.ko # ist egal, wenns zweimal versucht wird zu laden.
2/sbin/insmod /drivers/video/sun3i_tsc/tscdrv.ko
3/sbin/insmod /drivers/scsi/scsi_wait_scan.ko
-
meine methode oben hier im forum anwenden, um eine matz-sektion zu bilden, die von der sdcard startet. die verschiedenen /boot/[directory] einträge werden über mehrfaches drücken der vol+ (aber auch vol-) taste ausgewählt. - vergiss nicht, den adb-server zu starten (sicherheitshalber auch aus der /etc/rc.local) auf deinem Androiden, sonst hast Du keine möglichkeit mehr, parallel mit adb darauf zuzugreifen!
-starten von der sdcard, aber mit dem abgespeckten original android
- wenn der debootstrap teil 2 auf dem androiden fertig ist, kann man in der !! /boot/debian/params !!, jaja, genau, mach dir ruhig eine neue boot sektion, in der du matz oder debian ansteuerst !! dann den
1init=/init
auf
1init=/sbin/init
umstellen, erst dann ist debian nativ """""gebootet""""".
/etc/apt/sources.list:
1deb http://ftp.de.debian.org/debian/ wheezy main contrib non-free
2deb-src http://ftp.de.debian.org/debian/ wheezy main contrib non-free
Meine rc.local
1#!/bin/sh
2#
3# rc.local
4#
5# This script is executed at the end of each multiuser runlevel.
6# Make sure that the script will "exit 0" on success or any other
7# value on error.
8#
9# In order to enable or disable this script just change the execution
10# bits.
11#
12# By default this script does nothing.
13
14export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/vendor/bin:/system/sbin:/system/bin:/system/xbin
15export USER=root
16export HOME=/root
17
18export LANG=de_DE.utf-8
19export LC_ALL=$LANG
20export TZ=UTC+0200
21
22write() {
23 echo $2 > $1;
24}
25
26# Write value must be consistent with the above properties.
27# Note that the driver only supports 6 slots, so we have combined some of
28# the classes into the same memory level; the associated processes of higher
29# classes will still be killed first.
30
31 write /proc/cpu/alignment 4
32 write /proc/sys/kernel/sched_latency_ns 10000000
33 write /proc/sys/kernel/sched_wakeup_granularity_ns 2000000
34 write /proc/sys/kernel/sched_compat_yield 1
35 write /proc/sys/kernel/sched_child_runs_first 0
36 write /sys/module/lowmemorykiller/parameters/adj 0,1,2,4,7,15
37 write /proc/sys/vm/overcommit_memory 1
38 write /sys/module/lowmemorykiller/parameters/minfree 0,0,0,0,0,0
39 write /proc/1/oom_adj -17
40 # Tweak background writeout
41 write /proc/sys/vm/dirty_expire_centisecs 200
42 write /proc/sys/vm/dirty_background_ratio 5
43 echo 0 > /proc/sys/vm/min_free_kbytes
44
45
46
47insmod /drivers/misc/eeprom/eeprom_93cx6.ko
48insmod /drivers/scsi/scsi_wait_scan.ko
49insmod /drivers/video/sun3i_tsc/tscdrv.ko
50insmod /drivers/net/wireless/rtl8192cu/8192cu.ko rtw_power_mgnt=3
51
52echo 0,0,0,0,0,0 > /sys/module/lowmemorykiller/parameters/minfree
53
54mount /dev/nanda /boot
55mount /dev/nande /swap
56swapon /swap/swap
57
58hostname android
59
60ifup wlan0
61
62sleep 5
63
64nohup /sbin/adbd &
65
66# echo "Bootvorgang beendet ..." | /vendor/bin/console
67/vendor/bin/paint 00 00 00 00
68
69ntpdate -s ptbtime1.ptb.de
70
71su -l root -c xinit &
72
73exit 0
/etc/rsyslog.conf muss man anpassen, weil der android-kernel jede menge debug von seinem mmc von sich gibt:
1/etc/rsyslog.conf Configuration file for rsyslog.
2#
3# For more information see
4# /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html
5
6
7#################
8#### MODULES ####
9#################
10
11$ModLoad imuxsock # provides support for local system logging
12$ModLoad imklog # provides kernel logging support
13#$ModLoad immark # provides --MARK-- message capability
14
15# provides UDP syslog reception
16#$ModLoad imudp
17#$UDPServerRun 514
18
19# provides TCP syslog reception
20#$ModLoad imtcp
21#$InputTCPServerRun 514
22
23
24###########################
25#### GLOBAL DIRECTIVES ####
26###########################
27
28#
29# Use traditional timestamp format.
30# To enable high precision timestamps, comment out the following line.
31#
32$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
33
34#
35# Set the default permissions for all log files.
36#
37$FileOwner root
38$FileGroup adm
39$FileCreateMode 0640
40$DirCreateMode 0755
41$Umask 0022
42
43#
44# Where to place spool and state files
45#
46$WorkDirectory /var/spool/rsyslog
47
48#
49# Include all config files in /etc/rsyslog.d/
50#
51$IncludeConfig /etc/rsyslog.d/*.conf
52
53
54###############
55#### RULES ####
56###############
57
58#
59# First some standard log files. Log by facility.
60#
61:msg, contains, "mmc0:" ~
62
63*.* -/var/log/messages
man kann dann mittels ssh auf den androiden und den Rest ganz normal als linux-system nachinstallieren mit:
1apt-get update
2apt-get install xfce4
/usr/share/X11/xorg.conf.d/10-evdev.conf:
1Section "InputClass"
2 Identifier "evdev keyboard catchall"
3 MatchIsKeyboard "on"
4 MatchDevicePath "/dev/input/event*"
5 Driver "evdev"
6EndSection
7
8Section "InputClass"
9 Identifier "evdev touchscreen catchall"
10 MatchIsTouchscreen "on"
11 MatchDevicePath "/dev/input/event*"
12 Driver "evdev"
13 Option "InvertY" "true"
14 Option "InvertX" "true"
15 Option "Calibration" "70 1960 150 1790"
16EndSection
/root/.xinitrc:
1exec xfce4-session
alternativ geht openbox, da braucht man nicht soviel resoucen und kann die drei Tasten auf funktionen legen, wie z.B. aufklappen von xvkbd usw.
1exec openbox-session
Teil von /etc/xdg/openbox/rc.xml (die Keyboard binding) von links oben nach rechts, dann auch noch der powerknopf:
1<!-- Keyboard bindings for pmt43 -->
2 <keybind key="0xAB">
3 <action name="Close"/>
4 </keybind>
5
6 <keybind key="0xAD">
7 <action name="ShowMenu"><menu>root-menu</menu></action>
8 </keybind>
9
10 <keybind key="0xE7">
11 <action name="Execute"><command>switchkbd.sh</command></action>
12 </keybind>
13
14 <keybind key="0x7A">
15 <action name="Execute">
16 <command>amixer -q set Master 1- unmute</command>
17 </action>
18 </keybind>
19
20 <keybind key="0x7B">
21 <action name="Execute">
22 <command>amixer -q set Master 1+ unmute</command>
23 </action>
24 </keybind>
25
26 <keybind key="0x7C">
27 <action name="Execute">
28 <command>init 0</command>
29 </action>
30 </keybind>
root@android:~# cat /vendor/bin/switchkbd.sh
1#!/bin/sh
2
3export DISPLAY=:0
4export XVKBD=matchbox-keyboard
5export OPTS=
6
7ps h -C $XVKBD >/dev/null && killall $XVKBD || $XVKBD $OPTS &
meine E ma i l für Rückfragen ist: (sonderzeichen und umlauts rausmachen) m a , t z % p ! x 8 Ü 7 0 Ö 9 (bei) googlemail (dot) c o m.
— geändert am 08.08.2012, 20:23:36
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.