Hack a Nokia N900
目录 |
1 快捷键
Ctrl + Y 重复 (如果有效) Ctrl + F 打开搜索框 (如果有效) Ctrl + 右箭头 移动到文本的最后 Ctrl + 左箭头 移动到文本的开始 FN + Ctrl 打开特殊符号表 Ctrl + Backspace 打开任务管理器 Ctrl + Shift + P 截图(图片保存在 /home/user/MyDocs/.images/Screenshots) Ctrl + Shift + X 打开Xterm窗口 Ctrl + Space 输入语言切换 快速按两下电源键 锁住屏幕和键盘 快速按两下Shift 锁住大写键 快速按两下Fn 锁住Fn键 在桌面上 按A-Z字母搜索联系人 在桌面上按蓝色箭头+数字 直接输入电话号码,进入拨号界面
2 基本shell安装
先 ROOT,在应用管理器 "Application Manager" 里安装 "rootsh",如果找不到,要先添加这个源:
deb http://repository.maemo.org/extras/ fremantle free non-free
如下命令可获得 ROOT:
$ sudo gainroot
或者直接:
$ root
添加下列软件包源到: /etc/apt/sources.list
deb http://repository.maemo.org/extras-testing/ fremantle free non-free deb http://repository.maemo.org/extras-devel/ fremantle free non-free
Update apt cache:
# apt-get update
安装 bash coreutils-gnu grep-gnu findutils-gnu tar-gnu wget vim netcat openssh-client openssh-server
# apt-get install bash coreutils-gnu grep-gnu findutils-gnu tar-gnu wget vim netcat openssh-client openssh-server
bash 环境的配置,与桌面 Linux 一样,用户偏好和环境变量都在 /etc/bash.bashrc 和 ~/.bashrc 中,如果发现改了他们不起作用,记得在 /etc/profile 里加一行:
source /etc/bash.bashrc
N900默认的用户是 user,更改默认使用的 shell 在文件 /etc/passwd 中:
root:x:0:0:root:/root:/bin/bash user:!:29999:29999::/home/user:/bin/bash
警告: 不要执行 ln -sf /bin/bash /bin/sh 覆盖系统原有的 /bin/sh,这会导致系统不能启动
3 特殊字符输入
键盘上没有 '|', '%', '{', '}' 等符号的输入,需要修改 /usr/share/X11/xkb/symbols/nokia_vndr/rx-51
在文件 rx-51 的最后,找到 xkb_symbols "arrows_4btns" 这一节,将其修改为:
xkb_symbols "arrows_4btns" { // standard arrows mapping // normal 2nd level must not be enumerated to allow text selection with Shift key key <UP> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Up, percent ] }; key <LEFT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Left, braceleft ] }; key <DOWN> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Down, bar ] }; key <RGHT> { type[Group1] = "PC_FN_LEVEL2", symbols[Group1] = [ Right, braceright ] }; };
保存退出,执行:
Nokia-N900:~# id uid=0(root) gid=0(root) Nokia-N900:~# setxkbmap
则增加四个组合键 Fn + Key_UP 输入字符 '%',Fn + Key_LEFT 输入字符 '{',Fn + Key_DOWN 输入字符 '|',Fn + Key_RIGHT 输入字符 '}'
其他参考:http://wiki.maemo.org/Remapping_keyboard
4 SSH 免密码登录
生成当前用户的 ssh key:
Nokia-N900:~# id uid=0(root) gid=0(root) Nokia-N900:~# ssh-keygen Generating public/private rsa key pair. ......
把 ssh public key 拷到目标机上(ssh 去登录的机器):
Nokia-N900:~# scp .ssh/id_rsa.pub root@YOUR_SERVER_IP:/tmp/id_rsa_n900
在目标机上执行:
# cat /tmp/id_rsa_n900 >> ~/.ssh/authorized_keys
这样,从 N900 再登录目标机时就不用输入密码了:
# ssh root@YOUR_SERVER_IP
5 实用工具
- 推开镜头盖,立即弹出对话框让你选择:是开闪光(当手电用)还是开相机
Nokia-N900:~# apt-get install flashlight-extra
6 系统备份
https://metalab.at/wiki/Hack-A-N900/Dump_and_Restore_rootfs_Image
7 FM TX
N900 内有一片 SI4713,带 76-108 MHz FM 发射
The FM signal is transmitted from a loop antenna built into the case, and connected to the PCB with clips.
产品手册: https://www.silabs.com/products/audiovideo/fmtransmitters/Pages/Si471213.aspx
Datasheet: http://www.silabs.com/Support%20Documents/TechnicalDocs/AN332.pdf
内核驱动: http://www.mjmwired.net/kernel/Documentation/video4linux/si4713.txt
Nokia-N900:~# modprobe -l | grep 47 /lib/modules/2.6.28-omap1/fmtx-si4713.ko
驱动形成一个 /dev/radio0 的设备,是一个 video4linux 设备
# v4l2-ctl --all -d /dev/radio0 Driver Info: Driver name : radio-si4713 Card type : Silicon Labs Si4713 FM Radio Tr Bus info : I2C: 0x63 Driver version: 1 Capabilities : 0x00010000 Tuner Video input : 0 Frequency: 1400000 (87.500000 MHz) Video Standard = 0x00000000 Streaming Parameters Video Capture: Frames per second: 25.000 (25/1) Read buffers : 0 Tuner: Name : FM Transmitter Capabilities : 62.5 Hz stereo Frequency range : 87.5 MHz - 108.0 MHz Signal strength/AFC : 0%/0 Current audio mode : stereo Available subchannels: stereo
驱动同时在 sysfs 下有接口: /sys/class/i2c-adapter/i2c-2/2-0063/
默认情形下 FM TX 被关闭,安装一个 fmtx-faker 可将其解开:
Nokia-N900:/usr# apt-get install fmtx-faker
则在 Media Player 中,点一下 "now playing" 选择 FM Transmitter,播放音乐的话就会 FM TX !
扩频参考: http://talk.maemo.org/showthread.php?t=60567
其他参考: http://wiki.maemo.org/N900_FM_radio_transmitter
8 USB Host 模式
N900 带 USB Host 模式,可外接各种 USB 设备,直接安装 hostmode-gui:
Nokia-N900:~# apt-get install hostmode-gui
默认更新的内核为 kernel-bts,如要使用 feature 更多的内核 kernel-power 可使用如下命令安装:
Nokia-N900:~# apt-get install kernel-power-bootimg kernel-power-modules kernel-power-flasher 安装过程中会让你确认把 kernel-power 刷写到单独 nand 分区中,同意即可,kernel-power 很稳定 Nokia-N900:~# hostmode-gui
插上 USB 设备,
9 SDR
- http://talk.maemo.org/showthread.php?t=91182
10 安装 SDK
在现有 Linux 下面安装一个 /scratchbox,使用时类似 chroot 进入这个目录,编译使用和原生系统差不多,非常好用!
参考: http://developer.nokia.com/Community/Wiki/Maemo_5_SDK_installation_for_beginners