分类 硬件折腾 下的文章

上个月,小曼问我能不能拯救她朋友的iPhone4S,机器不能开机,想把里面的文件拷贝出来。

本来就没用过iPhone,但是还是试着找了一下解决方法:http://iphone.91.com/wap/tutorial/syjc/130718/21591468.html 原理大概是,先让iPhone进入DFU模式,并运行ssh_rd_rev04a.jar来建立SSH服务,再用SSH客户端(例如PuTTY)连上去挂载相关分区,然后用SFTP客户端(例如Winscp)拷贝文件,最后退出DFU模式。

如果一切就绪的话,应该不难,但是没有想象中的简单。

第一个问题是进入DFU模式。因为跟Android不同,进入DFU模式后是黑屏,没有任何提示,只能用ssh_rd这个工具来检测。网上找了很多教程,就是电源键和Home键协同操作的结果。

第二个问题是ssh_rd这个工具。试了好久,也查了好久,才发现可能是ssh_rd这个工具的版本不够新,所以才不能建立SSH。找到项目版本发布地址:https://github.com/msftguy/ssh-rd/releases 下载了最新版ssh_rd_rev04b.jar。

最后一个问题是退出DFU模式的脚本。其实就是执行 itunnel_mux --autoboot 当然,前提是下载 itunnel_mux.exe ,运行时会提示缺少一些dll文件,相关的dll文件都可以在iTunes的安装目录中找到。

第一次见面时,因为那些问题卡住了,搞不了。回去后找了把问题解决了,并找了台iPhone4来测试,证明方法可行。第二次见面时,不知道怎么弄的,iPhone 4S居然可以正常启动,并且系统自动恢复了。于是赶紧用什么手机助手把照片、视频,统统拷贝出来。

心得体会是,更加坚定不用iPhone的信念。

4月份换到新的公司,5月初公司换了个新的笔记本Thinkpad E440,于是卖掉原有的Acer AO522-C6Ckk。今天终于发货给买家了。细数这段日子(从2011年12月6日至今),原来经历了我人生的三个阶段————男朋友、丈夫和父亲。

当初入手AO522,是看中了AMD APU C60集成高性能显卡Radeon HD6290的优势,而且传说中很省电。最重要的是,屏幕是10.1吋,分辨率达到1280x720,同尺寸的屏幕中,分辨率最高,而且方便携带。后来发现,电池也就4个小时多一点吧,体积还是有点大,放小包里还是有点勉强。不过总体还是挺满意的。

AO522主要还是用来看电影,但是要换上Ubuntu 12.10后,才能流畅播720p的电影。跟豆丁拍拖时,吃饭或者吃cake时一起看电影,是最主要的节目。印象比较深的是《春娇与志明》、《3 idiots》、《独裁者》,因为太搞笑了。去旅游也带上了,但真正发挥作用的是,公司组织的旅游,接到房间的电视机看电影。去海南那次,回来时飞机晚点,AO522就在候机室满足了N个人的娱乐————播电影的同时,给手机、平板充电。

由于入手AO522后,台式机都送给锋表哥了。于是AO522成了主要的个人装备了。装上Ubuntu是必然的,然后学习过PHP,用CodeIgniter开发过小网站。装上Eclipse,还开发过Android小程序。还帮豆丁的HTC Incredible S解锁、刷系统和获取Root权限。渐渐适应了这家伙的移动性,还习惯了不关机,直接合上屏幕进入挂起模式。婚前还经常下班后,一个人坐在千禧广场,偷着i-Cafe的WiFi上网。还有考车牌时,用来看教学视频和做笔试练习。

结婚时,整纪念标志、电子请帖,也是用AO522。那时认识了Inkscape这个画图软件,也尝试了用Javascript代替Flash制作动画效果。

现在用着E440,AO522就显得多余了。毕竟背着两个笔记本上班是很辛苦的事情。还有一个原因是,现在的平板已经发展得足够好了————8小时续航时间,数量庞大而且轻易获取的应用程序,足够的娱乐性能,超高的屏幕分辨率,更加轻薄的体型,便宜的价格。那么,夹在高性能笔记本和平板之间的上网本还有什么生存空间呢?

对比上一个“二奶”,这次没那么伤感。或者一切都来得那么自然,而且用着AO522的这两年多,我已经不是一个人了。

通过一晚的测试与实验,终于用YUMI,把Android-x86 4.4.2 RC2装到U盘上,并且启动成功。记录一下吧:

1)打开YUMI并选择U盘,Step 2选“Try Unlisted ISO (via SYSLINUX)”,Step 3选ISO文件,如“android-x86-4.4-RC2.iso”。然后就等待YUMI自动处理完成。

2)进入刚弄好的U盘,找到文件 X:\multiboot\android-x86-4.4-RC2\isolinux\isolinux.cfg 并用编辑器打开。修改 kernel 和 initrd 的路径前缀为 /multiboot/android-x86-4.4-RC2 。具体修改后的文件内容如下:

default vesamenu.c32
timeout 600

menu background android-x86.png
menu title Android-x86 Live & Installation CD 4.4-RC2 
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffff00 #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ffffff00 #ff000000
menu color hotkey 7 #ffffff00 #00000000

label livem
    menu label Live CD - ^Run Android-x86 without installation
    kernel /multiboot/android-x86-4.4-RC2/kernel
    append initrd=/multiboot/android-x86-4.4-RC2/initrd.img root=/dev/ram0 androidboot.hardware=android_x86 video=-16 quiet SRC= DATA=

label vesa
    menu label Live CD - ^VESA mode
    kernel /multiboot/android-x86-4.4-RC2/kernel
    append initrd=/multiboot/android-x86-4.4-RC2/initrd.img root=/dev/ram0 androidboot.hardware=android_x86 video=-16 quiet nomodeset vga=788 SRC= DATA=

label debug
    menu label Live CD - ^Debug mode
    kernel /multiboot/android-x86-4.4-RC2/kernel
    append initrd=/multiboot/android-x86-4.4-RC2/initrd.img root=/dev/ram0 androidboot.hardware=android_x86 video=-16 vga=788 DEBUG=2 SRC= DATA=

label install
    menu label Installation - ^Install Android-x86 to harddisk
    kernel /multiboot/android-x86-4.4-RC2/kernel
    append initrd=/multiboot/android-x86-4.4-RC2/initrd.img root=/dev/ram0 androidboot.hardware=android_x86 video=-16 INSTALL=1 DEBUG=

PS. Android-x86项目越来越完善了,非常适合上网本安装。但要注意驱动的问题,特别是无线网卡!

4月中,终于换了个公司,重新投入到软件开发的行业。公司给我配置了个笔记本,Thinkpad E440(等了一个月才拿到手),于是今天装上Lubuntu 14.04。

安装过程比以前的台式机、前两个笔记本,都简单。iso文件用YUMI弄成启动盘,然后就图形化界面中点“下一步”。然而问题总是出现在安装之后的配置过程,比如内核没带该网卡的驱动,自带了很烂的iBUS输入法,任务栏没显示音量控制图标,大量的软件需要重新安装配置等等。直到写本文时,还没弄好。

过程中,突然感慨,好像我就一直在用Linux,都只停留在系统安装和软件设置上,没弄出个像样的东西。例如,昨天同事问我Linux中如何把禁掉的端口打开,我都没想到用iptable处理。

换上第3个笔记本了,希望能继续努力~

折腾RaspberryPi已经一段日子了,期间还因接错GPIO的线而报废了一个。重新入手了英国版后,却没再怎么玩了。

昨天搜索相关资料时,找到一个很简单的关机按钮方法(http://spaceblogs.org/flipdot/2013/06/shut-down-your-raspberry-pi-on-button-press-and-add-reset-function/)就是利用2.0版新增的P5接口,直接连上个开关,实现关机功能。根据该文章,还可以直接在P6上连个按钮,实现重启。

RaspberryPi针脚相关的资料,可以参考:http://elinux.org/RPi_Low-level_peripherals

今晚测试了一下,该方法可行。然后就是折腾了整晚的钻孔……还是入手个小电钻吧。期待明天可以接线。

PS。关机按钮的作用是保护SD卡,以免强制断电关机后,发生数据损坏或丢失的情况~

在G1时代,入手了蓝牙耳机之后,就一直想把蓝牙耳机当成无线快门来用。虽然很屌丝,但是很实在的一个功能,特别是当年还一个人到处乱逛。

这几天终于启动这个项目。一开始的想法,肯定是参考一些音乐播放软件,利用BroadcastReceiver接受蓝牙耳机的按键事件,再广播一个Camera按键事件,实现从蓝牙的“播放键”到相机的“快门”的动作转换。但是,静态注册了BroadcastReceiver后,不起作用,怀疑是受其它音乐播放软件的影响,但也查不到原因。

后来灵机一动,想起直接修改Android的按键影射文件,把“播放键”直接改成“快门键”。于是修改 /system/usr/keylayout/AVRCP.kl 文件,把 key 200 MEDIA_PLAY WAKE 中的 MEDIA_PLAY 替换成 CAMERA。连上蓝牙后,测试通过,但还有个问题,就是相机不会先自动对焦后拍照,而是直接就拍照。然后就是写个Shell脚本(主要是sed命令吧)来自动修改影射文件。再然后就是写个app来实现这个功能了。当然,这是后话,希望不会成为屁话……

后面还有个想法,通过老G1来自动拍照,上传到服务器,实现监控功能。好吧~继续努力~

由于想把Raspberry Pi改造成无线中继,所以插了两个USB网卡上去。后来发现系统启动后,无线网卡的名称每次都不一定相同,以致启动桥接服务的shell脚本出错。但笔记本上的Lubuntu 12.10却是无线网卡每次的名称都不变。同样是基于Debian,Raspbian也应该可以实现无线网卡名称固定(其实就是跟MAC绑定网络接口名称)。翻查了资料,还是Debian的Wiki比较靠谱。见:http://wiki.debian.org/udev

最后还是比较懒,从Lubuntu 12.10上复制文件 /etc/udev/rules.d/70-persistent-net.rules 到Raspbian上,再改改来用就可以了。该文件修改如下:

## begin the file /etc/udev/rules.d/70-persistent-net.rules #################
# USB Ethernet (usb)
#SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:ff", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# USB device 0x0cf3:0x1006 (Mercury MW54U)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:ff", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

# USB device 0x0bda:0x8171 (Netcore NW338)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="aa:bb:cc:dd:ee:ff", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan1"
## end the file /etc/udev/rules.d/70-persistent-net.rules #################

其中aa:bb:cc:dd:ee:ff要替换成网卡对应的MAC码。

入手Raspberry Pi Model B (512MB) 已经一段时间了。装上官方的Raspbian,感觉跟手头上的AO522没区别。同样是基于Debian,同样是LXDE桌面。也试了下Xbian (XMBC + Raspbian),感觉非常棒,只是菜单操作有点卡。可惜手上的SD卡空间不够大,否则,还可以玩玩Android。

玩过后,正是按计划进行。首先是作为无线路由来使用。其实就跟Lubuntu共享WiFi一样,测试过程中,还改良了一下以前写的sharewifi脚本(以前的版本:http://www.foxail.org/blog/?p=490)。但是还有一个问题,执行该脚本的stop操作后,系统不会把建立的mon.wlan0接口关闭,需要重启系统,wifi才能从共享模式变成正常的接收模式。

1)sharewifi脚本,设置共享wifi,我放在/opt下,内容如下:(首先要安装hostapd和dnsmasq,执行sudo apt-get install hostapd dnsmasq即可)

### begin the file /opt/sharewifi #########################################
#!/bin/sh

# Setup wireless AP, share the Internet from interface0 to interface1
# USAGE: sharewifi [ start | stop ] interface0 interface1
# EXAMPLE: sharewifi start wlan1 wlan0

help( )
{
    cat << HELP
    Setup wireless AP, share the Internet from interface0 to interface1
    USAGE: sharewifi [ help | start | stop ] interface0 interface1
    EXAMPLE: sharewifi start wlan1 wlan0

    List clients:
    cat /var/lib/misc/dnsmasq.leases
    HELP
    exit 0
}

start( )
{
    echo Starting share wifi ......
    echo Share Internet $port_in to $port_out

    # Configure iptable rules
    iptables -F
    iptables -t nat -A POSTROUTING -s $ip_prefix.0/24 -o $port_in -j MASQUERADE
    iptables -A FORWARD -s $ip_prefix.0/24 -o $port_in -j ACCEPT
    iptables -A FORWARD -d $ip_prefix.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i $port_in -j ACCEPT

    # Log the message of route
    #iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

    # Save iptable rules
    sh -c "iptables-save > /etc/iptables.rules"

    # Configure hostapd
    hostapd_conf=/etc/hostapd/hostapd.conf
    [ -f $hostapd_conf ] && rm $hostapd_conf
    echo >> $hostapd_conf interface=$port_out
    echo >> $hostapd_conf driver=nl80211
    echo >> $hostapd_conf ssid=foxrpi-ap
    echo >> $hostapd_conf channel=1
    echo >> $hostapd_conf hw_mode=g
    echo >> $hostapd_conf auth_algs=1
    echo >> $hostapd_conf wpa=3
    echo >> $hostapd_conf wpa_passphrase=1234567890
    echo >> $hostapd_conf wpa_key_mgmt=WPA-PSK
    echo >> $hostapd_conf wpa_pairwise=TKIP CCMP
    echo >> $hostapd_conf rsn_pairwise=CCMP
    chmod 755 $hostapd_conf

    # Configure /etc/dnsmasq.conf
    dnsmasq_conf=/etc/dnsmasq.conf
    [ -f $dnsmasq_conf ] && rm $dnsmasq_conf
    echo >> $dnsmasq_conf interface=$port_out
    echo >> $dnsmasq_conf bind-interfaces #这个是只监听wlan0,没有之会检测所有卡
    echo >> $dnsmasq_conf except-interface=lo
    echo >> $dnsmasq_conf dhcp-range=$ip_prefix.10,$ip_prefix.110,6h #设置dhcp地址范
    chmod 755 $dnsmasq_conf

    # Enable routing
    sysctl net.ipv4.ip_forward=1

    #killall named
    /etc/init.d/hostapd stop
    ifconfig $port_out $ip_prefix.1
    hostapd -B $hostapd_conf
    /etc/init.d/dnsmasq restart

    echo Sucess share wifi

    exit 0
}

stop( )
{
    echo Stopping share wifi ......
    echo Stop share Internet $port_in to $port_out

    # Configure iptable rules
    iptables -F

    # Log the message of route
    #iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

    # Save iptable rules
    sh -c "iptables-save > /etc/iptables.rules"

    # Configure hostapd
    hostapd_conf=/etc/hostapd/hostapd.conf
    [ -f $hostapd_conf ] && rm $hostapd_conf

    # Configure /etc/dnsmasq.conf
    dnsmasq_conf=/etc/dnsmasq.conf
    [ -f $dnsmasq_conf ] && rm $dnsmasq_conf

    # Enable routing
    sysctl net.ipv4.ip_forward=0

    #killall named
    /etc/init.d/hostapd stop
    /etc/init.d/dnsmasq stop
    ifconfig $port_out down
    ifconfig $port_out del $ip_prefix.1
    ifconfig $port_out up

    echo Sucess stop share wifi

    exit 0
}

ip_prefix=192.168.23 #wifi路由所用网段

#port_in is the network interface which connected to Internet, and default wlan1.
port_in=wlan1

#port_out is the network interface which will be setup AP, and default wlan0.
port_out=wlan0

if [ -n "$2" ]; then
    port_in=$2

    if [ -n "$3" ]; then
        port_out=$3
    fi
fi

case "$1" in
"help" )
    help ;;
"start" )
    start ;;
"stop" )
    stop ;;
*)
    help ;;
esac
### end the file /opt/sharewifi #########################################

2)设置开机自动启动,先编写开机启动的脚本。在/etc/init.d下建立文件sharewifi,文件内容如下:

### begin the file /etc/init.d/sharewifi ######################################### 
#!/bin/sh 
### BEGIN INIT INFO # Provides: sharewifi 
# Required-Start: $syslog 
# Required-Stop: $syslog 
# Default-Start: 2 3 4 5 
# Default-Stop: 0 1 6 
# Short-Description: starts the Wireless AP server 
# Description: starts the Wireless AP using start-stop-daemon 
### END INIT INFO
sharewifi=/opt/sharewifi
NAME=sharewifi
DESC=sharewifi

# Include nginx defaults if available
if [ ! -f $sharewifi ]; then
    echo "Can't find the file $sharewifi"
    exit 1
fi

case "$1" in
start)
    echo -n "Starting $DESC: "
    sh $sharewifi start eth0 wlan0
    echo "$NAME."
    ;;

stop)
    echo -n "Stopping $DESC: "
    sh $sharewifi stop eth0 wlan0
    echo "$NAME."
    ;;

restart)
    echo -n "Restarting $DESC: "
    sh $sharewifi stop eth0 wlan0
    sleep 1
    sh $sharewifi start eth0 wlan0
    echo "$NAME."
    ;;

*)
    echo "Usage: $NAME {start|stop|restart}" >&2
    exit 1
    ;;
esac

exit 0
### end the file /etc/init.d/sharewifi #########################################

3)执行以下命令,即可设置开机启动:

sudo update-rc.d /etc/init.d/sharewifi defaults

经过昨天的实践,终于搞定Ubuntu共享WiFi功能,而且不是Ad-hoc模式。从此“二奶”可以作为无线中继使用(这里指的是在Ubuntu系统下)。参考教程:
Ubuntu共享WiFi(AP)给Android/更新方法二 http://weibin.me/538

首先很重要的是,要确定无线网卡驱动是否支持master mode。如果不支持,就别想了。然后就可以按照教程安装并设置hostapd和dnsmasq。根据教程,写了个脚本,方便启动或关闭该功能。第一次写比较长的Shell脚本,所以该脚本还是不太完善,但基本可用。要注意,/etc/dnsmasq.conf还是要手动修改。脚本如下:

#!/bin/sh
# begin file: sharewifi

# Setup wireless AP, share the Internet from interface0 to interface1
# USAGE: sharewifi [ start | stop ] interface0 interface1
# EXAMPLE: sharewifi start wlan1 wlan0

help( )
{
cat << HELP
Setup wireless AP, share the Internet from interface0 to interface1
USAGE: sharewifi [ help | start | stop ] interface0 interface1
EXAMPLE: sharewifi start wlan1 wlan0
HELP
exit 0
}

start( )
{
echo Starting share wifi ......
echo Share Internet $port_in to $port_out

# Configure iptable rules
iptables -F
iptables -t nat -A POSTROUTING -s 192.168.7.0/24 -o $port_in -j MASQUERADE
iptables -A FORWARD -s 192.168.7.0/24 -o $port_in -j ACCEPT
iptables -A FORWARD -d 192.168.7.0/24 -m conntrack --ctstate ESTABLISHED,RELATED -i $port_in -j ACCEPT

# Log the message of route
#iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

# Save iptable rules
sh -c "iptables-save > /etc/iptables.rules"

# Configure hostapd
hostapd_conf=/etc/hostapd/hostapd.conf
[ -f $hostapd_conf ] && rm $hostapd_conf
echo >> $hostapd_conf interface=$port_out
echo >> $hostapd_conf driver=nl80211
echo >> $hostapd_conf ssid=AO522-Tether
echo >> $hostapd_conf channel=1
echo >> $hostapd_conf hw_mode=g
echo >> $hostapd_conf auth_algs=1
echo >> $hostapd_conf wpa=3
echo >> $hostapd_conf wpa_passphrase=1234567890
echo >> $hostapd_conf wpa_key_mgmt=WPA-PSK
echo >> $hostapd_conf wpa_pairwise=TKIP CCMP
echo >> $hostapd_conf rsn_pairwise=CCMP
chmod 755 $hostapd_conf

# Configure /etc/dnsmasq.conf
#interface=wlan0
#bind-interfaces #这个是只监听wlan0,没有之会检测所有卡
#except-interface=lo
#dhcp-range=10.1.1.10,10.1.1.110,6h #设置dhcp地址范

killall named
killall hostapd
ifconfig $port_out 192.168.7.1
hostapd -B $hostapd_conf
/etc/init.d/dnsmasq restart

echo Sucess share wifi

exit 0
}

stop( )
{
echo Stopping share wifi ......
echo Stop share Internet $port_in to $port_out

# Configure iptable rules
iptables -F

# Log the message of route
#iptables -A INPUT -m conntrack --ctstate NEW -p tcp --dport 80 -j LOG --log-prefix "NEW_HTTP_CONN: "

# Save iptable rules
sh -c "iptables-save > /etc/iptables.rules"

# Configure hostapd
hostapd_conf=/etc/hostapd/hostapd.conf
[ -f $hostapd_conf ] && rm $hostapd_conf

# Configure /etc/dnsmasq.conf

killall named
killall hostapd
ifconfig $port_out down
ifconfig $port_out del 192.168.7.1
ifconfig $port_out up

echo Sucess stop share wifi

exit 0
}
#port_in is the network interface which connected to Internet, and default wlan1.
port_in=wlan1

#port_out is the network interface which will be setup AP, and default wlan0.
port_out=wlan0

if [ -n "$2" ]; then
port_in=$2

if [ -n "$3" ]; then
port_out=$3
fi
fi

case "$1" in
"help" )
help ;;
"start" )
start ;;
"stop" )
stop ;;
*)
help ;;
esac

# end file: sharewifi

PS. “二奶”升级到Lubuntu 12.04 LTS,感觉更好用了~

上个月终于入手Acer AO522-C6Ckk(以下简称AO522),看重APU C60的高性能集成显卡与低功耗,还有轻薄便携。系统选择方面,Windows 7是必须的,网银支付、玩游戏,都得用它。重点是Linux方面,Ubuntu都习惯了,当然是首选。但是Unity太不给力了,于是根据经验(在SA1F00上装过Ubuntu 11.10 + LXDE,比Unity流畅多了),选择了衍生版Lubuntu。由于Lubuntu本身还有很多不完善,所以又开始了新一轮折腾之旅…

第一,系统安装
现在的Linux分发版都很方便,可以通过光盘、U盘、硬盘、网络等方式安装,还可以做成Live CD,不安装就可以运行。对于AO522,还是建议制作启动U盘进行安装,很方便。本人手头没有U盘,只能通过硬盘安装。

不管通过哪个方式安装,都要注意:必须先进BIOS设置 Main -> Network Boot 为Enabled。否则会遭遇死机,以致无法进入安装环境,或安装后不能进入系统。

安装步骤总结如下:
1)安装Grub(或者可以直接使用带Grub的、可启动 的U盘)。

2)下载lubuntu-11.10-desktop-amd64.iso,放到该机器硬盘上某分区的根目录下(我就放在第一个分区 下,一般为Windows的C盘)。并把iso文件里casper文件夹下的vmlinuz和 initrd.lz两个文件解压,并与iso文件放在一起。

3)启动电脑,进入grub的启动界面,按c键进入命 令编辑界面,输入以下命令:

grub > set root="(hd0,1)"
grub > linux /vmlinuz boot=casper iso-scan/filename=/lubuntu-11.10-desktop-amd64.iso ro quiet splash locale=zh_CN.UTF-8
grub > initrd /initrd.lz
grub > boot

4)进入lubuntu系统后,打开终端,运行以下命令:

sudo umount -l /isodevice

5)运行安装程序。由于是全中文,所以安装过程略过。

第二,显卡驱动
由于AMD自家的闭源驱动不给力,所以用默认的就可以了。就是不用再瞎折腾了。

第三,声卡设置
由于系统默认的声卡是HDMI输出,所以播音乐没声音。进入/etc,新增文件asound.conf,其文件内容如下:

defaults.ctl.card 1
defaults.pcm.card 1

记得设置文件权限,如下:

sudo chown 755 /etc/asound.conf

第四,主菜单维护
Lubuntu的不完善马上体现出来,想修改主菜单,没有对应的软件。详细参考:http://wiki.lxde.org/zh/%E4%B8%BB%E8%8F%9C%E5%8D%95 该文档提到安装LXMED软件,来修改主菜单。

第五,Flash插件
进入 http://get.adobe.com/cn/flashplayer/ 下载对应系统的.tag.gz文件,例如我的是AMD64。解压出libflashplayer.so文件,复制到 /usr/lib/chromium-browser/plugins/ 目录(用FireFox的,复制到 /usr/lib/firefox-X/plugins/ 目录)。记得设置其权限:

sudo chown 755 /usr/lib/chromium-browser/plugins/libflashplayer.so

第六,RAR插件
进入 http://www.rarlab.com/download.htm 下载对应的RAR版本,解压后,进入rar目录,然后执行:

sudo make install

第七,屏幕亮度
系统启动后总是以最大亮度显示,每次都要重新设置其亮度,很麻烦。修改/etc/rc.local文件,在文件最后,exit 0之前,加入如下代码:

echo 0 > /sys/class/backlight/acpi_video0/brightness

其中0代表最暗,这个可以根据需要设置。

第八,拼音输入法
默认没有安装输入法,输入以下命令安装:

sudo apt-get install ibus-pinyin

可以根据需要或喜好,选择fcitx、scim等。

第九,其它
参考Ubuntu的AO522帮助文档:https://help.ubuntu.com/community/AspireOne522