Debian
Table of Contents
A seperate setup page.
1 Power management
- sudo journalctl | less
- /etc/systemd/logind.conf
- dmesg | grep -i 'acpi'
- /proc/acpi/wakeup
Finally I figure it out!
Install acpitool
package.
Use acpitool -w
to list the wake up events.
Use acpitool -W x
where x is the number of the output of above command.
Try to disable them one by one, and use systemctl suspend
to test if the system wake up.
In my case, I succeed after disable number 5 (there's really nothing to tell from the list!).
Not sure if it can persist after reboot. It remains to be set how to automatically resume the wifi.
Device S-state Status Sysfs node --------------------------------------- 1. P0P2 S3 *disabled 2. EC S4 *disabled platform:PNP0C09:00 3. HDEF S3 *disabled pci:0000:00:1b.0 4. RP01 S3 *disabled pci:0000:00:1c.0 5. RP02 S3 *disabled pci:0000:00:1c.1 6. RP03 S3 *disabled pci:0000:00:1c.2 7. ARPT S4 *enabled pci:0000:03:00.0 8. RP05 S3 *disabled pci:0000:00:1c.4 9. RP06 S3 *enabled pci:0000:00:1c.5 10. XHC1 S3 *enabled pci:0000:00:14.0 11. ADP1 S4 *enabled platform:ACPI0003:00 12. LID0 S4 *disabled platform:PNP0C0D:00
2 Tmp
change laptop screen brightness:
cat /sys/class/backlight/intel_backlight/max_brightness cat /sys/class/backlight/intel_backlight/brightness echo 400 > /sys/class/backlight/intel_backlight/brightness
3 Installation
3.1 VirtualBox Guest addition
It seems need the xinit
to be installed.
aptitude install build-essential aptitude install linux-headers-$(uname -r) sudo mount /dev/src0 /media/cdrom cd /media/cdrom sudo ./VBoxLinuxAdditions.run
Guest addition is needed for clipboard sharing.
To enable it, you need: VBoxClient --clipboard
.
3.2 dist-upgrade
cp /etc/apt/sources.list{,.bak} sed -i -e 's/ \(stable\|wheezy\)/ testing/ig' /etc/apt/sources.list apt-get update apt-get --download-only dist-upgrade # Dangerous apt-get dist-upgrade
netselect-apt
to select the fastest source!
4 Startup
Change default desktop environment:
- GNome: gdm
- KDE: kdm
- lxfe: lightdm
Change (three approaches):
- edit
/etc/X11/default-display-manager
: I think we'd better use update-alternative sudo dpkg-reconfigure gdm
update-alternatives --config x-window-manage
5 Configuration
dpkg-reconfigure
reconfigure a installed packagedefconf-show
show the current configuration of a package
5.1 update-alternatives
Options:
--config
: show options and select configuration interactively--display
: show the options
Some examples:
update-alternatives --config desktop-background
5.2 systemd
systemctl disable lightdm
This will replace the/etc/rc2.d/S03lightdm
with/etc/rc2.d/K01lightdm
.
6 Package Management
/etc/apt/sources.list
/var/cache/apt/archives/
Once installed google-chrome deb file downloaded from google,
it will add one file: /etc/apt/sources.list.d/google-chrome
.
The original sources.list after a minimal installation:
# deb cdrom:[Debian GNU/Linux 8.5.0 _Jessie_ - Official amd64 NETINST Binary-1 20160604-15:31]/ jessie main #deb cdrom:[Debian GNU/Linux 8.5.0 _Jessie_ - Official amd64 NETINST Binary-1 20160604-15:31]/ jessie main deb http://ftp.us.debian.org/debian/ jessie main deb-src http://ftp.us.debian.org/debian/ jessie main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main # jessie-updates, previously known as 'volatile' deb http://ftp.us.debian.org/debian/ jessie-updates main deb-src http://ftp.us.debian.org/debian/ jessie-updates main
if some package needs configuration, you can redo the config by:
dpkg-reconfigure <package>
6.1 binary or source
deb
: binarydeb-src
: source
6.2 code name
jessie
is the current name code for the stable release version of Debian.
The next release and the next next release code name are also available.
jessie
is equal tostable
stretch
is equal totesting
sid
is equal tounstable
Sometimes you want to use stable, but with new versions of packages from testing
release.
This is called, for jessie
, the jessie-backports
release.
6.3 source
Another part is the main
.
If you want some 3rd party contributor packages, add contrib
after main
.
If you further want some non-free packages, add also non-free
.
6.4 Upgrade the system: from stable to testing
Follow the following process EXACTLY.
- First, change the code name
stable
in sources.list totesting
. - Then,
apt-get update
apt-get upgrade
apt-get dist-upgrade
Do not use aptitude
, it will stuck resolving dependence.
7 Debian boost up scripts
This is based on the following snippets:
list="git xinit xorg" apt-get update apt-get install -y $list cat example.list | xargs sudo apt-get -y install
8 MIME
check the MIME of a file.
file --mime /path/to/file
On debian, the mapping from suffix to MIME type is /etc/mime.types
.
Create default application for xdg-open
mkdir ~/.local/share/applications xdg-mime default firefox.desktop application/pdf
~/.local/share/applications/mimeapps.list
[Default Applications] application/pdf=firefox-esr.desktop
/usr/share/applications/*.desktop
are files define for each application.
9 Trouble shooting
When shutting down, systemd is hindered by a message for a long time: "a stop job is running …"
THIS IS STILL OPEN! NO SOLUTION. The symptoms: If I power of immediately after boot up (before network interface is up), no problem. If I wait for some time and the interface is up, even if I ifdown it, the problem still exists.
https://www.reddit.com/r/archlinux/comments/4bawf7/a_stop_job_is_running_for_session_c2_of_user/
You can add your own rules to a service file like this:
sudo systemctl edit systemd-timesyncd.service
and then pasting this here into the editor that comes up:
[Service] TimeoutStopSec=1s
It saves a "systemd-timesyncd.service.d/override.conf" file in /etc, does not touch the original files.
After editing, you can check on what systemd sees by doing:
systemctl cat systemd-timesyncd.service systemctl show systemd-timesyncd.service
9.1 a stop job is running for make remote cups printers available locally
systemctl status cups-browsed.service systemctl disable cups-browsed.service
10 Man pages
systemd:
systemd-system.conf
systemd.service
Networking:
interfaces
11 Wireless
For a supported wireless card, directly install wicd
and run
wicd-client -n
.
11.1 wireless driver for mac
11.1.1 Debian Installation on mac:
- Use DVD because it has
dkms
package, used for Broadcam wireless chipset. - Clean install Mac OS
- Reboot, Cmd-R to boot into recover, partition two more partitions for debian and swap.
- Use unetbootin to create Debian USB stick
- Install Debian normally, but use the pre-defined partition! Use
ext-4 and mount at
/
11.1.2 wireless
iwconfig
if the wlan card shows up, it is good, otherwise:
update-pciids # if necessary; run as root, to update PCI database lspci | grep -E "Atheros|Broadcom" # Finds card
Note: for 4360, there're actually two chipsets: 14E4:4360
and 14E4:43A0
, the first one does not have a driver, the second one can use wl
(broadcom-sta-dkms).
To see which one (http://unix.stackexchange.com/questions/175810/how-to-install-broadcom-bcm4360-on-debian-on-macbook-pro):
lspci -vnn | grep -i net
My macbook shows BCM4360, I installed from outside:
b43-fwcutter dkms broadcom-sta-dkms
Install from USB stick needs:
- mount
apt-cdrom -m -d /path/to/mount add
make sure the mount actually mounted, and the entries in/etc/apt/sources.list
correct. When installing, it is still needed to mount to/media/cdrom
.
After making the wireless working, put in the sources.list:
deb http://ftp.us.debian.org/debian jessie main deb-src http://ftp.us.debian.org/debian jessie main
Then run
modprobe -r b44 b43 b43legacy ssb brcmsmac bcma modprobe wl
Then, config wifi:
make sure the iwconfig
shows the card information (something with wlan0 xxx).
At this point, just use wicd
(available on DVD-2) and you will be fine.
The following "manual interface" way is OK for IASTATE wifi because it does not require password, but for a WPA encrypted one, it does not work.
In this case, wpa_supplicant
is needed, but I didn't make it work.
In a word, just use wicd
.
wicd
is a daemon, install and start, make sure you only have lo
loopback entry in /etc/network/interfaces
.
apt-get install wicd systemctl restart wicd
ip a iwconfig ip link set wlan0 up # scan wifi iwlist scan
Add to /etc/network/interfaces
: (see also man interfaces
, man wireless
)
# my wifi device auto wlan0 iface wlan0 inet dhcp wireless-essid [ESSID] (IASTATE) wireless-mode [MODE] (Master)
finally, ifup
and ifdown
toggle the wifi.
The auto wlan0
in the config file will start it after boot.
But auto wlan0
will make the boot very slow, so use allow-hotplug wlan0
instead. This will result in a fast boot, while also give you internet.
But, after suspension, the network is dead unless ifdown wlan0 && ifup wlan0
.
Optionally, NetworkManager
service can also be used. The package is network-manager
, the front end is network-manager-gnome
, but I didn't find a way to invoke it.
11.1.3 Resume wireless after suspend
http://askubuntu.com/questions/761180/wifi-doesnt-work-after-suspend-after-16-04-upgrade
Originally the wifi does not work after suspension. I need to do
ifdown wlan0 ifup wlan0
TODO Now I think this automatic approach might work:
/etc/systemd/system/wifi-resume.service
#/etc/systemd/system/wifi-resume.service #sudo systemctl enable wifi-resume.service [Unit] Description=Restart networkmanager at resume After=suspend.target After=hibernate.target After=hybrid-sleep.target [Service] Type=oneshot ExecStart=/bin/systemctl restart network-manager.service [Install] WantedBy=suspend.target WantedBy=hibernate.target WantedBy=hybrid-sleep.target