检查笔记本电脑是否已接入 Linux

检查笔记本电脑是否已接入 Linux

我最近购买了一台联想 X200s 笔记本电脑,它带有一个扩展坞,我用它来运行 Ubuntu 9.10。当笔记本电脑对接时,我使用键盘和轨迹球。我希望笔记本电脑对接时和未对接时有一些不同的配置选项。当笔记本电脑对接/未对接时,我可以连接一些事件并运行脚本吗?否则,有什么办法可以查明笔记本电脑是否对接了?有点像“is_docked”命令。

谢谢

答案1

请参阅文章 Linux Laptop-HOWTO,尤其是以下章节扩展坞/端口复制器其中描述了检测笔记本电脑对接状态的脚本。

基本思想是检查 /proc 中仅在对接状态下可用的设备。

在下面的脚本中,如果笔记本电脑位于扩展坞中,则有 4 个 PCMCIA 插槽可用,而如果它是独立的,则只有 2 个插槽可用:

# check, if Laptop is in docking-station (4 PCMCIA slots available)
# or if it is standalone (2 slots available)
# Start after cardmgr has started
#
# Friedhelm Kueck mailto:[email protected]
# 08-Sep-1998
#
# Find No. of Sockets
SOCKETS=`tail -1 /var/run/stab | cut -d ":" -f 1`

case "$SOCKETS" in

"Socket 3")
echo Laptop is in Dockingstation ...
echo Disabeling internal LCD Display for X11
echo
cp /etc/XF86Config_extern /etc/XF86Config
#
# Setup of PCMCIA Network Interface after start of cardmge
#
echo
echo "Setting up eth0 for use at Network ..."
echo
/sbin/ifconfig eth0 10.1.9.5 netmask 255.255.0.0 broadcast 10.1.255.255
/sbin/route add -net 10.1.0.0 gw 10.1.9.5
/sbin/route add default gw 10.1.10.1
;;

"Socket 1")
echo Laptop is standalone
echo Disabling external Monitor for X11
cp /etc/XF86Config_intern /etc/XF86Config
echo
echo Network device NOT setup
;;
esac

答案2

看看如何从 X6 Ultrabase 获取通知:http://www.thinkwiki.org/wiki/X6_UltraBase

我不知道 X200 Ultrabase,但我猜这应该非常相似。

相关内容