Total Pageviews

Friday, 20 October 2017

在windows上,安装Debian系统

Base installation

For the installation of the base system I did the following:
  • generate a bootable USB stick using unetbootin with distribution “Debian — Stable_HdMedia_x64″,
  • download the Debian squeeze CD 1 image from the Debian CD download website and put the iso file in the root directory of the USB stick,
  • boot the Acer Aspire One 753 from the USB stick and follow the installation instructions (do not worry about no ethernet card being detected).

Kernel configuration

The standard Debian kernel 2.6.32-5-amd64 supports almost all hardware of the laptop (ethernet and WiFi have to be compiled seperately but can be used without compiling a custom kernel).
The only problem I had with the standard Debian kernel was some sound issues (headphone jack not working), so I decided to compile a custom kernel. I am now running kernel 2.6.38, with this config file.

Ethernet

The ethernet card is supported by the atl1c driver of recent kernels (CONFIG_ATL1C in Device Drivers – Network device support – Ethernet (1000 Mbit) – Atheros L1C Gigabit Ethernet support (EXPERIMENTAL)). Thanks to Kirill Kornilov for pointing this out.

Ethernet after base installation (kernel 2.6.32-5-amd64)

Older kernels do not support the card directly. The first steps to make ethernet working with 2.6.32-5-amd64 standard kernel after a base installation is to install a build system. The following commands assume that the USB stick used for base installation is still present as /dev/sdb (check /var/log/messages) and the Debian CD 1 iso image is in /dev/sdb1.
mount /dev/sdb1 /media/usb
mount -o loop /media/usb/debian-testing-amd64-CD-1.iso /media/cdrom
aptitude install linux-headers-2.6.32-5-amd64
aptitude install build-essential
Now download (using another computer) the atl1e driver from the Atheros website and copy the file AR81Family-Linux-v1.0.1.14.tar.gz onto the Acer Aspire One to (for example) /usr/src/ar81xx/AR81Family-Linux-v1.0.1.14.tar.gz (create the directory). Then compile and install the driver:
cd /usr/src/ar81xx/
tar xzvf AR81Family-Linux-v1.0.1.14.tar.gz
make && make install
rmmod atl1e
modprobe atl1e

Wireless

The wireless card can be used with Broadcom’s STA driver. To install this driver download the 64-bit driver put the file in a directory named for example /usr/src/broadcom-sta (create the directory) and run
cd /usr/src/broadcom-sta
tar xzvf hybrid-portsrc_x86_64-v5_100_82_38.tar.gz
Now edit the file /usr/src/broadcom-sta/src/wl/sys/wl_linux.c, to to line 485 and change
init_MUTEX(&wl->sem);
to
#ifdef init_MUTEX
init_MUTEX(&wl->sem);
#else
sema_init(&wl->sem,1);
#endif
Now in /usr/src/broadcom-sta/ run
make
make install depmod -a modprobe wl
Afterwards the wireless interface eth1 is usable.
Note: Fn-F3 can be used to switch off the WiFi hardware. For details see the section on bluetooth. The WiFi LED indicates whether the WiFi hardware is switched on or not.
Note: With earlier versions of the driver the kernel configuration (as from 2.6.33) needs CONFIG_HOSTAP set (Device Drivers – Network Device Support – Wireless LAN – IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)), to implicitely enable CONFIG_WIRELESS_EXT. This option can no longer be configured using menuconfig, see also The Gentoo Linux Wiki on Broadcom 43xx. I did not confirm whether this is still the case for the latest version of the driver, my kernel config still sets CONFIG_HOSTAP.
Furtheremore for older version of the driver I had to make sure not to enable ACER_WMI (Device Drivers – X86 Platform Specific Device Drivers – Acer WMI Laptop Extras) in the kernel configuration, or, blacklist the module with a standard Debian kernel. Using this module resulted in a completely unusable wireless interface after a suspend (reset doesn’t help). I again did not confirm whether this is still the case with newer versions of the wl driver, my kernel config does not set ACER_WMI.

Audio

Audio output on internal speakers, headphones, and HDMI works. Audio input through the internal microphone and an external microphone also works. Both work with alsa (hda-intel) as provided by kernel 2.6.38. I is important to load the module snd-hda-intel without any options (at least I couldn’t find any options that improve the functionality). For audio input, the “Mic Boost” and “Internal Mic Boost” have to be above 0 in the mixer settings. The input volume is controlled by “Capture”.
I had problems with audio input in Skype version 2.1.0.81 (it worked fine in, e.g., audacity), these issues are gone with the Skype Beta 2.2.0.25. Thanks to Kirill Kornilov for his help with getting audio working properly.

Hotkeys

The hotkeys work:
  • Fn-F3: See section on bluetooth.
  • Fn-F4: See section on suspend.
  • Fn-F5:Generates a “video/switchmode” ACPI event. I am using this event to switch to HDMI output by putting the follwing in /etc/acpi/events/video
    event=video/switchmode
    action=/etc/acpi/actions/videoswitch.sh
    and the following in /etc/acpi/actions/videoswitch.sh
    #!/bin/bash
    if [ -z "$(xrandr | grep HDMI | grep disconnected)" ];then
    xrandr –output LVDS1 –off
    xrandr –output HDMI1 –mode 1920×1080
    else
    xrandr –output HDMI1 –off
    xrandr –output LVDS1 –mode 1366×768
    fi
    The file /etc/acpi/actions/videoswitch.sh has to be executable (for root).
  • Fn-F6: Switches off the screen (without further configuration).
  • Fn-F7: Switches on and off the touchpad (without further configuration).
  • Brightness control: Works out of the box. When pressing Fn-leftarrow (lower brightness) first, brightness will go down to the lowest level. After that the keys can be used to increase/decrease brightness stepwise.
  • Volume controls: Fn-F8 generates a “button/mute” ACPI event. Fn-arrowup creates a “button/volumeup” ACPI event. Fn-arrowdown creates a “button/volumedown” ACPI event.
    I am not using these ACPI events to control the volume but instead use the following three lines in my .fluxbox/keys:
    None XF86AudioLowerVolume :execcommand amixer -q set Master 2- unmute
    None XF86AudioRaiseVolume :execcommand amixer -q set Master 2+ unmute
    None XF86AudioMute :execcommand amixer -q set Master mute

HDMI and VGA output

HDMI and VGA outputs work. I use xrandr (package x11-xserver-utils) to control video outputs. For HDMI audio output create a file .asoundrc with the following content:
pcm.!default hdmi:Intel
This will set the HDMI audio output as default device and output all sound only via HDMI. Commenting out the above line with # goes back to usual audio output (speakers if no headphones are plugged, headphones when they are plugged). For sounds configuration also see the section on audio.

Suspend and Hibernate

Suspend to RAM works using the program pm-suspend contained in the pm-utils package. I am using Fn-F4 to send the laptop to suspend by running acpid (package acpid) and putting the following in /etc/acpi/events/sleep
event=button/sleep
action=/etc/acpi/actions/sleep.sh
and the following in /etc/acpi/actions/sleep.sh
#!/bin/bash /usr/sbin/pm-suspend
This will require making /etc/acpi/actions/sleep.sh executable (for root).

Webcam

The webcam is supported through “Video for Linux” in the kernel (Device Drivers – Multimedia devices – Video For Linux) and the USB Video Class Linux device driver (Device Drivers – Multimedia devices – Video For Linux – Video capture adapters – V4L USB devices – USB Video Class). Furthermore you will need to install libv4l (package libv4l-0). To check whether the webcam works you can use the program luvcview (package luvcview).

Card reader

The card reader works out of the box. Plugging an SD card (haven’t tried any other cards) detects the card as /dev/sdb it basically works just like a USB stick. If this does not work, then maybe the card reader is disabled, it can be enabled by (repeatedly) pressing Fn-F3 (which should enable/disable bluetooth and WiFi). I am still working on figuring out the details. In any case watching /var/log/messages for some /dev/sdb showing up (for example with tail -f) while pressing Fn-F3 helps.

No comments:

Post a Comment