找了一个N270处理器的小上网本跑ArchLinux当开发服务器,结果发现合上屏幕就会休眠,于是祭起搜索引擎神器,在ArchLinux的Wiki宝典里面找到了如下的办法:
- 修改/etc/systemd/logind.conf
其中:
- HandlePowerKey:按下电源键后的动作
- HandleSleepKey:按下挂起键后的动作
- HandleHibernateKey: 按下休眠键后的动作
- HandleLidSwitch:合上笔记本盖后待机
动作可以是:ignore、poweroff、reboot、halt、suspend、hibernate、hybrid-sleep、lock 或 kexec。
话说自己用还是喜欢ArchLinux,云上的话CentOS也可以忍受
archlinux用aur编译的时候,根据top看,多处理器没有用起来,于是研究了一下,发现可以修改/etc/makepkg.conf来修改make的环境变量,启用多处理。具体如下:
去掉MAKEFLAGS前面的注释,并根据处理器数量修改-j后面数据,双核为-j2,四核为-j4
MAKEFLAGS="-j2"
这个提升还是比较明显的。
树莓派2安装最新的ArchLinuxARM,然后安装标准的nginx。压力源使用VS2015中测试项目的WebLoadTest。
第一次没调nginx的工作进程数,第二次调成4个工作进程,于是…….真相如下:
最惨的是我自己的pc跑满了
1月份刚收了一个带有Raid卡和热插拔笼子的HP瘦客户机,上周刚给他装上2块500G的2.5寸硬盘,做好raid装好Arch,就看到了这个消息。
看到这个消息有点不舒服,不是因为这机器装的Arch一年后就没有更新了,而是突然回首发现已经玩了20年的Linux了。
不说这个了,给大家看看这个奇怪的瘦客户机。原机是HP的T5740,但是加厚扩展了4盘位的盘仓和Raid卡。卡是Sil 3114有点鸡肋,但是能扩充4盘位。机器内部还有一个8G SATA口的SSD。处理器是N280,单处理器,32位,好处就是省电低热。这机器主板不支持加载3114上的硬盘,所以/boot和grub都在这个8G的SSD上面。
Archlinux的AUR里面有很多非官方的软件包,但是需要自己编译,编译前还有很多相应的准备工作。需要先安装base-devel这个安装包的组,然后还要安装git。另外还要准备一个非root的账号,并具备sudo的权限。
1.当前使用root身份安装必须的文件:
pacman –S base-devel git
2.使用root身份用visudo命令添加tom ALL=(ALL) ALL,这里tom就是那个非root账号。
3.使用su tom的方式切换到tom用。
4.使用git clone的方式拿取安装包的信息文件,这会为包安装创建一个文件夹。
5.进入这个文件夹,然后使用makepkg –si。这会自动下载依赖的安装包,下载依赖的文件,编译这些文件,并制作安装包。然后会问你tom这个账号的密码,密码正确以后,会以root权限来安装刚才做好的安装包。
利用这个可以解决mkinitcpio时候aic94xx和wd719xx两个firmware确实造成的报错。
先是收了一个群晖DS716+ii,玩了一下Docker,于是又在Arch上面玩。Docker确实好玩,作为沙箱环境,创建速度快了很多。下面是整理的资料:
Install Docker on Arch Linux:https://docs.docker.com/engine/installation/linux/archlinux/
这个可能是我Blog里面第一篇使用Open Live Writer写的内容,目前其本版为0.6。
前段时间摔伤,把手里的工作交接了一下,顺便开始研究一些之前腾不出时间做的研究。这次是在ArchLinux上安装PostgreSQL。研究了一下PostgreSQL的文档,写的很细,但是无从下手。研究了一下ArchLinux的Wiki,基本过程写了,但是还有问题,自己折腾了两天才搞定,特此记录一下。
1.首先还是要安装postgresql安装包。
pacman –S postgresql
2.安装包搞定以后,会自动创建postgres账号。按照ArchLinux的要求,需要修改这个账号的密码,作为开发环境可以跳过。然后su成这个账号,做数据库的初始化。因为postgresql是以这个账号运行的,所以数据库初始化,一定要su成这个账号。
su postgres
initdb –locale $LANG -E UTF8 –D ‘/var/lib/postgres/data’
exit
3.初始化完成以后,会创建好配置文件和系统库。接下来编辑配置文件。配置文件都在刚才的数据目录内。
先修改postgresql.conf文件,去掉listen_address前面的注释符,并将内容修改为*号,表示监听所有的IP。
再修改pg_hba.conf文件,添加host all all 192.168.1.0/24 md5,表示允许某个网段以md5编码的方式验证用户登录。
4.修改完成就可以注册服务和启动服务了。
systemctl enable postgresql
systemctl start postgresql
5.启动以后需要修改管理账号的密码
psql –U postgres
postgres=#\password postgres
6.这样就安装完成,可以使用远程的pgAdmin 3试试能否连接到服务器了。
1.准备:
下载最新的iso文件,准备虚机,测试网络。
2.使用iso启动虚机,测试网络是否可用。
3.分区和磁盘准备: sda1为交换分区,大小与内存相同,sda2为剩余空间。
分区:fdisk /dev/sda
格式化主分区:mkfs.ext4 /dev/sda2
格式化交换分区: mkswap /dev/sda1
启用交换分区:swapon /dev/sda1
加载主分区:mount /dev/sda2 /mnt
4.修改当前使用的镜像服务器,我是修改为163的镜像。
vi /etc/paman.d/mirrorlist
5.灌rootfs。包括基础和开发两部分包。
pacstrap –i /mnt base develop
genfstab –U –p /mnt >> /mnt/etc/fstab
6.切换root
arch-chroot /mnt /bin/bash
7.修改locale信息
修改/etc/locale.gen,再执行locale-gen
执行echo LANG=en_US.UTF-8 > /etc/locale.conf
8.修改时区和local时间
ln –s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
hwclock –systohc –utc
9.修改机器名
echo myhostname > /etc/hostname
10.修改密码
passwd
11.安装bootloader
pacman –S syslinux
syslinux-install_update –i –a –m
vi /boot/syslinux/syslinux.cfg
12.退出重启
exit
umount –R /mnt
reboot
ArchLinuxARM在第一时间更新了网站,并支持了树莓派3,但是还有一些情况,参考:https://archlinuxarm.org/platforms/armv8/broadcom/raspberry-pi-3。例如:当前的root filesystem使用的还是Pi2的32位的内容等。
另,需要注意的是Pi3需要电源更大的电流,根据ArchLinuxARM的测试,需要2.5A以上的电流,这个有点强悍。
在树莓派和PC的ArchLinux的2015.11上,驱动都没有问题。
lsusb显示:
Bus 001 Device 004: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
lsmod显示:
使用的是8188eu的驱动,使用cfg80211栈。但是在插卡的时候不会加载cfg80211,只有在wifi-menu之后,才会加载。
使用wifi-menu连接的时候,会有ioctl的错误信息,但是不影响连接。在wifi-menu,里面看不到信号评分或者信号的分贝提示。dmesg会有错误信息。
补充:
1.COMFAST CF-WU810N的lsusb和lsmod信息一致。
2.COMFAST CF-WU720N的lsusb和lsmod信息一致。
在树莓派和PC的ArchLinux的2015.11上,驱动都没有问题。
lsusb显示:
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter
lsmod显示使用的是8192cu的驱动,使用cfg80211栈。
使用wifi-menu连接的时候,会有ioctl的错误信息,但是不影响连接。
在我这次买的一堆USB无线网卡里面,磊科NW360这个是唯一的不需要做任何操作就可以使用的无线网卡,内部应该是RTL8191SU芯片。
lsusb的信息是
Bus 001 Device 004: ID 0bda:8172 Realtek Semiconductor Corp. RTL8191SU 802.11n WLAN Adapter
lsmod显示驱动为r8712u,使用cfg80211栈。目前,从dmesg看,无任何错误信息。
上一篇《在ArchLinux ARM下驱动RTL 8188eu无线网卡》对网卡不好用,很是郁闷。所以这次整了一堆无线usb网卡来测试。今天很高兴,完美驱动了mt7601u网卡,当然这个过程不是一帆风顺,不然也就不必要写这么一篇blog了。
先说使用这个片子的网卡:
必联(B-Link) BL-D88 http://item.jd.com/1154411.html
必联(B-Link) BL-150SM http://item.jd.com/1154451.html
传说小米的随身wifi也是这个片子,但是我手头没有小米的随身wifi,所以读者自己测试吧
再说驱动为什么不是一帆风顺:我在pc和arm的ArchLinux上测试这个网卡的时候,发现插上设备以后,系统没有新增网卡设备,lsusb发现识别正常,lsmod发现驱动正常,dmesg发现加载firmware时,没有找到firmware文件。于是自己去http://www.mediatek.com/en/downloads1/downloads/mt7601u-usb/这里下载了一个最新的,你不想注册信息的话,可以从我的百度盘下载http://pan.baidu.com/s/1hqpWmGG。我共享的这个文件,不需要改名字,直接sftp上传,然后复制到/lib/firmware里面,重启pc或者树莓派就好了。
sftp可以使filezilla client。
在2013年4月的时候,我曾写过一篇《在Cubieboard的ArchLinux下驱动RTL8188eu无线网卡》。现在两年半以后,因为ArchLinux ARM的升级,所以那片帖子的里面的内容已经过时了。但是根据访问统计看,还有人在访问,而且我现在自己也想把自己树莓派上面的网线换成无线,所以有了今天这篇的内容。今天的这个内容,我在树莓派1B+、树莓派2B以及x86的环境中都做了测试,目前看实验现象似乎都是一致的。水星Mercury的MW150US网卡有多个版本,我手里的这个是MW150US v2.0。
在2013年的时候,当时ArchLinux ARM的内核还是Linux 3,但是现在ArchLinux和ArchLinux ARM的内核都已经是Linux 4了,而且RTL的驱动程序也在升级,所以情况也是有变化的。
先说说现状:
目前RTL 8188eu的驱动,在ArchLinux和ArchLinux ARM的内核里面都已经内置了,插上USB以后,使用lsmod会看到有一个r8188eu的驱动在,但是无论使用wpa_supplicant还是wifi-menu,都无法连到无线路由器。翻墙查了相关的搜索结果以后,大部分都在建议使用https://github.com/lwfinger/rtl8188eu/tree/v4.1.8_9499的新驱动,据说老的驱动是3下面的驱动,在4里面无法很好的工作。
编译并安装驱动:
首先用pacman –S base-devel git dkms iw wpa_supplicant dialog crda linux-raspberrypi-headers安装必要的组件。这其中base-devel是编译需要的工具链,git是代码获取工具,iw、wpa_supplicant、dialog是配置无线网的工具,dkms是动态内核配置工具。crda能设置无线网卡的频率范围,linux-raspberrypi-headers是编译驱动所需要的头文件。
然后获取代码git clone –b v4.1.8_9499 https://github.com/lwfinger/rtl8188eu.git,这会将一个稳定的版本下载到本地。下载后可以先修改rtl8188eu中的Makefile文件,其中CONFIG_POWER_SAVING的内容修改为CONFIG_POWER_SAVING = n,目的是关闭省电功能。然后就可以使用make或者dkms来编译了,具体可以参考github的页面上的帮助。这两种做法会有一个区别,区别是make会自动在/etc/modprobe.d/内创建一个50-8188eu.conf文件,他会把内核中的r8188eu模块加入blacklist,我们自己可以编辑这个文件,并加入一行options 8188eu rtw_power_mgnt=0,给驱动送参数,来关闭相关的电源管理。
结果:
目前看按照上面的操作完成驱动安装以后,某些时候会工作的比较好,dmesg里面已经没有错误信息了。但是说某些时候,是因为不确定原因的某些时候工作的不好。据说最完美的情况是在x64的情况下,据说github上维护代码的这个作者,他用的是这个环境。
还有就是目前看,ArchLinux的作者和使用者确实激进,因为从搜索结果看,大部分是ArchLinux的用户在提问。另外,还有相当多的用户是和我一样在树莓派上使用。
我目前的想法是换一个usb网卡试试。没准换过几个网卡之后,我会写一个迷你usb无线网卡的评测,哈哈
再加一句:ArchLinuxARM论坛里面推荐的dkms-8188eu的方法并不好用,也已经测试了。
最近在ArchLinux上安装MariaDB的节奏和以前有了一些变化。如下:
安装
1. pacman –S mariadb
2. mysql_install_db –user=mysql –basedir=/usr –datadir=/var/lib/mysql
3. systemctl enable mysqld
4. systemctl start mysqld
5. mysql_secure_installation
升级(在较大的升级以后,比如5.0升级到10.0或者10.升级到10.1)
mysql_update –u root –p
为root添加远程访问
$ mysql -u root -p
MariaDB> CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
MariaDB> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
MariaDB> quit
ArchLinux在国内有不少的镜像服务器,163和sohu都有,还有好多官方收录的镜像服务器。ArchLinuxARM在国内的镜像服务器不多,而且境外的镜像服务器也不稳定,有的时候会给你个速度还说的过去的服务器,有的时候那速度就是惨不忍睹。最近发现清华的这个镜像服务器不错,既有ArchLinux的,也有ArchLinuxARM的,地址如下:http://mirror.tuna.tsinghua.edu.cn/。
测试了一下,下载个百兆的更新,分分钟的事情。mirrorslist文件在/etc/pacman.d下面。
最近单位的网络的飞鱼星打开了,很多网站上不去,于是想在家里的树莓派2上把SSH的Tunnel打开。
修改起来是很简单,用vi /etc/ssh/sshd_config编辑sshd的配置文件,找到AllowTcpForwarding yes这一行,然后去掉注释,然后保存。
这时候重启就树莓派就好了。
其实我是在看mono的i2c接口程序,发现我的/dev里面没有i2c-0和i2c-1这两个设备,于是查了一下。发现按照国内大部分教程为linux添加i2c-dev的驱动以后,并没有解决问题。翻墙找了找,如果单纯添加驱动不能解决问题的话,就需要修改/boot/config.txt了。
修改/boot/config.txt方法:
找到 device_tree_param=i2c_arm=on 和 device_tree_param=i2c_vc=on ,然后将其前面的注释去掉。
树莓派应该是有两条i2c总线?我不确定。不过一般情况在,/dev中会有i2c-0和i2c-1两个设备,上面两条如果只取消注释一条的话,那么只会出现一个i2c设备。i2c_arm对应的是i2c-1,i2c_vc对应的是i2c-0。
修改/etc/modules-load.d/raspberrypi.conf方法:
最后面添加i2c-dev。
这时候重启应该就可以看到/dev里面的i2c设备了。
再往下可以安装i2c-tools来查看工作状态了。这个自行搜索怎么用吧,我也没研究呢。
题外话:
- 从上面的试验可以看出,config.txt的优先级要比linux内核驱动的优先级高,可以直接关闭设别,这样驱动也就无效了。
- config.txt里面有i2c的速率设置方式,相应模块也有速率设置的方式,这两个优先级没有测试。
- 有的linux发布上还有blacklist的设置,还需要从黑名单中去掉i2c设备。ArchLinuxARM这个是空的。
- 目前是在Pi 1 B+上进行的测试。在Pi 1 B和Pi 2 B上还没有测试。根据文档看,貌似有区别,但是中说纷纭,有待测试。
- DS1307硬时钟是i2c接口的,所以在使用DS1307前,需要保证i2c正常。
前段时间收了一个集成显卡的D630,翻箱倒柜又找了2G的内存,凑足4G内存,自带的120G的7200转硬盘,正好装个Arch来玩。说实话,D630除了壳子塑料以外,集显的机器真的是码农利器,想当年用的那几台都不是自己的,用过就归还了,这次在水木的版里看到出的,600块钱就收来玩了。一个是玩Linux,一个是玩串口给台子写频,杠杠的。
手头没找到空的刻录盘,研究了一下怎么制作ArchLinux的USB安装盘。在ArchLinux的Wiki里面找了一下,找到一个USB Flash Installation Media的说明。因为这是D630是第一台专职Linux机器,所以就研究了一下这文档里面在Windows下怎么做的内容。
Windows下有三个方法,归根节点还是两个方法,一个是使用专门的启动U盘制作工具,一个是使用dd。Windows下的专门工具他推荐的是Universal USB Installer ,这个工具好处是不需要安装,也不大,带配置向导,界面也不复杂,还能自动帮你下载iso。但是我测试不好用,不知道是里面的syslinux的版本太老还是什么情况,反正是用我新下载的archlinux 2014.04.01的iso制作的U盘卡在了syslinux的步骤。
dd这个方法和linux上基本一致,那文档里分成了两个方法,一个是安装cygwin,一个是直接下载windows版的dd。我是直接下载来一个windows版的dd,马上就有专门的linux机器了,谁还玩cygwin啊,呵呵。下载地址
命令也很简单:dd if=archlinux-2014.04.01-dual.iso of=\\.\g: bs=4M
其中\\.\g:标示这是我的G盘。如果你的杀毒软件正在扫描U盘的话,那么写入U盘可能失败,没事,等会儿再试就好。写入完成以后,U盘上会有两个分区,一个64兆的fat32,还有一个是rootfs。rootfs一般不会沾满你的U盘,除非你的U盘1G大小都没有。
剩下的就没有什么了,插到D630启动就好,如果直接启动到硬盘了,那就重启修改BIOS启动顺序就好。
近期评论