10年08月09日 Monday , 70 次点击 , 评论

我的型号是X200,问题表现为在GNOME或XFCE下静音按钮无效,使用xev也捕获不到输入信号,而音量增加和减小按钮可以正常使用且有OSD。

解决办法是在grub的启动菜单中,给内核加上参数acpi_osi=“Linux”,如:

BASH:
  1. # (0) Arch Linux
  2. title  Arch Linux
  3. root   (hd0,2)
  4. kernel /boot/vmlinuz26 root=/dev/sda3 resume=/dev/sda4 ro acpi_osi="Linux"
  5. initrd /boot/kernel26.img

从查到的资料看,acpi_osi参数是用来指定操作系统接口的,据说有些硬件都只针对Windows做了测试或优化,对于这些硬件,如果将内核的操作系统接口指定为Linux,则有可能会出问题。所以内核从2.6.23版本开始,此参数的默认值被改成了“!Linux”,以保证更广泛的兼容性和稳定性。

而根据这里的说法,thinkpad一直以来在对Linux的兼容程度上有很好的口碑,故可以放心添加这个参数。

另外,xfce下使用OSD需要安装xfce4-volumed。

分类 : 计算机
Top
10年08月01日 Sunday , 99 次点击 , 2 条评论

早在keke童鞋的博客上见过,直到今天下载了个flash视频教程要看时才想起来,毕竟已经不是几年前Flash很火的时候了,为了降低CPU占用,我连Chromium的Flash插件都禁用了。

使用后的感觉就是简单实用,有暂停,有快进,能调进度,功能一样不多,一样不少。

要装两个包,swfdec是解码包,swfdec-gnome是播放器。

http://swfdec.freedesktop.org

分类 : 计算机
Top
10年07月18日 Sunday , 145 次点击 , 评论

虽然由于我的H108B没有TTL引脚而无法通过TTL线登入猫的BusyBox系统,但TTL线在Linux下的使用方法仍然值得一叙,因为除此之外,它还有较为广泛的用途,例如为路由器刷OpenWRT系统等等。

TTL转USB端子是目前较为常见的此类设备,这得益于它的简单易用和便携性。在这类设备上最常见的就是台湾的Prolific Technology生产的PL2303

这种芯片的驱动已被编译进Linux内核,如果使用的是较新版本的内核,则使用该芯片的TTL转USB端子会被自动识别,通常为/dev/ttyUSB0设备,使用lsusb命令可以查看:

[lenin@archer ~]$ lsusb
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

将四根杜邦线连接到TTL转USB插头上,并接入相应设备的对应引脚。同一根线两端连接的引脚必须对应,另外,VCC引脚不能接线,否则会烧坏TTL转 USB芯片。

在计算机上使用串口通讯程序进行操控,常见的串口通讯程序有:minicommicrocom,picocom,tinyserial,xgcom。

以minicom为例,进入minicom的设置界面:

sudo minicom -s

先设置默认的通讯设备为ttyUSB0并设置硬件流控制(Hardware Flow Control)为No:

保存为缺省设置:

启动minicom:

sudo minicom

理论上说,此时即可和设备进行通讯了。

Windows下要安装相应芯片的驱动,通讯程序一般用SecureCRT。

分类 : 计算机
Top
10年07月18日 Sunday , 170 次点击 , 1 条评论

之前提到过对华为HG522、HG527的超级用户的破解方法。网通附送的另一种猫,是中兴ZXV10 H108B无线猫,体积更小,而且天线是内置的。

上次的方法不能用在这个型号的猫上,但可以用ftp的方式破解。以下步骤基于Linux,并只在硬件版本为V1.1.02、软件版本为V1.1.02T18_N的H108B上测试通过:

1. 使用普通用户进入猫的设置页面并开启FTP服务,将用户名和密码均设为admin

2. 连接ftp服务器:

ftp 192.168.1.1

输入用户名和密码,成功登录FTP服务器:

[lenin@archer ~]$ ftp 192.168.1.1
Connected to 192.168.1.1.
220 Welcome to virtual FTP service.
Name (192.168.1.1:lenin): admin
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

3. 切换到/etc目录并下载配置文件board.conf

cd ../
cd etc
get board.conf

如下所示:

ftp> cd ../
250 Directory successfully changed.
ftp> cd etc
250 Directory successfully changed.
ftp> get board.conf
200 PORT command successful. Consider using PASV.
150 Opening BINARY mode data connection for board.conf (39516 bytes).
226 File send OK.
39516 bytes received in 0.0496 seconds (796003 bytes/s)
ftp>

4. 在下载到本地的board.conf中查找right,后跟0表示超级用户,若为1则表示普通用户,如下所示:

XML:
  1. <row id="0">
  2.     <item>"right", "0"</item>
  3.     <item>"username", "bjcnchgw"</item>
  4.     <item>"enable", "1"</item>
  5.     <item>"password", "bjcnchgw72915767"</item>
  6. </row>
  7. <row id="1">
  8.     <item>"right", "1"</item>
  9.     <item>"username", "user"</item>
  10.     <item>"password", "mypasswd"</item>
  11. </row>

5. 在如下页面使用超级用户登录:

http://192.168.1.1/cnc.html

6. 进入“网络”→“宽带设置”页面,删除所有“连接名称”列出的连接(其中,TR069是网通远程控制猫并修改超级用户密码的连接;INTERNET被设置成了桥接,所以不能实现路由功能;另外两个应该是用来屏蔽第三、四个LAN口的。所以要全部删除。),并创建新的连接:

7. 进入“网络”→“远程管理”页面,取消“周期上报功能”。

8. 由于“用户管理”页面不提供超级用户改密码的功能,所以此时应下载最新的board.conf,修改里面的超级用户的密码,再上传到/etc目录,假设已登入FTP并切换到/etc目录下:

ftp> put board.conf
200 PORT command successful. Consider using PASV.
150 Ok to send data.
226 File receive OK.
39516 bytes sent in 0.0195 seconds (2026565 bytes/s)
ftp>

9. 最后重启猫即可。

据说有使用TTL转USB线登入H108B的嵌入式Linux操作系统来破解超级用户的,但是我的猫的集成电路板上居然没有焊TTL引脚,显然H108B不只一个硬件版本,TTL线白买了。

以上照片出自G7+Camera360

分类 : 计算机
Top
10年07月10日 Saturday , 148 次点击 , 2 条评论

问题描述

pppoe可以连接,ifconfig可以看到ppp0接口,一切正常,只是不能上网。

解决办法

使用如下命令查看路由表:

BASH:
  1. route

正常情况下返回的结果中应该有如下内容:

default * 0.0.0.0 U 0 0 0 ppp0

如果没有,可手工添加:

BASH:
  1. route add default dev ppp0

如果可以上网,就成功了。

使用如下脚本在pppoe连接成功时自动添加路由表项:

BASH:
  1. #!/bin/sh
  2.  
  3. if ifconfig ppp0 > /dev/null 2>&1 ; then
  4.     route del default
  5.     route add default dev ppp0
  6. fi

将上述内容保存成名为01-route.sh的文件,权限755,放到/etc/ppp/ip-up.d目录下。

然后创建以下两个脚本:

BASH:
  1. #!/bin/bash
  2.  
  3. if ifconfig ppp0 > /dev/null 2>&1 ; then
  4.     echo 'PPPOE has already been switched on !'
  5.     exit 0
  6. fi
  7.  
  8. off
  9.  
  10. sudo pon
  11. sleep 5
  12. sudo /etc/ppp/ip-up

BASH:
  1. #!/bin/bash
  2.  
  3. if ! ifconfig ppp0 > /dev/null 2>&1 ; then
  4.     echo 'PPPOE has already been switched off !'
  5.     exit 0
  6. fi
  7.  
  8. sudo poff
  9. sudo /etc/ppp/ip-down

分别命名为onoff并复制到环境变量PATH下,以后即可使用这两个脚本建立和注销pppoe连接。

原因分析

问题的原因是pppoe连接建立时,没有自动往路由表中添加相关路由项。

一般情况下,如果使用的是ppp做pppoe连接,其配置文件中默认会开启defaultroute选项,该选项的作用就是在pppoe连接建立时自动添加路由表项,但在路由表中已经存在default项时,该操作将不会进行。

一般有两种情况会使路由表中在pppoe连接建立前就存在default项。一种情况是网络接口配置中设置了route,如在archlinux下,就是rc.conf文件中的gateway项。如果使用的是静态地址,则需要做这种配置,但对于大多数使用DHCP动态分配IP地址的情况,这项配置则不需要。另一种情况就是ADSL Modem自带路由功能,在分配IP给计算机时也会自动添加一条路由表项。

分类 : 计算机
Top