Сообщения

Сообщения за март, 2017

Linux редактор vi

Нажмём клавишу i, и редактор перейдёт в режим ввода текста. Теперь вводим, например, следующий текст: Введите любое количество строк, после каждой нажимая клавишу Enter. Исправлять опечатки можно с помощью клавиши Backspace. Для выхода из режима ввода и возвращения в командный режим нажмём клавишу Esc. i В командном режиме нажатие клавиши x удаляет символ, на который указывает курсор. x Для выхода из редактора vi без сохранения изменений, сделанных в файле, используется команда :q! Команда :wq сначала сохраняет файл со сделанными изменениями, а затем выходит из редактора vi. :wq Чтобы сохранить файл, но не выходить из редактора vi, используется команда :w. :w Из редактора vi можно выполнять команды оболочки. Команда :r! работает аналогично команде :r, но вместо содержимого другого файла она вставляет в редактируемый файл выдачу некоторой команды. Введение команды завершается клавишей Enter. ДОПОЛНИТЕЛЬНО VI в КОМАНДНОМ РЕЖИМЕ. ЧТОБЫ ВЫЙТИ ИЗ ФАЙЛА Б

Linux Wi-Fi wpa_supplicant

Настройка беспроводной сети Пакеты, необходимые для работы Wi-Fi: sudo pacman -S iw wpa_supplicant dialog Смотрим список доступных беспроводных интерфейсов: sudo iw dev Поднимаем интерфейс: sudo ip link set wlp2s0 up Ищем доступные точки: sudo iw dev wlp2s0 scan | less Создаем примерно такой файл /etc/wpa_supplicant/wpa_supplicant-wlp2s0.conf: # пример конфига со всеми возможными опциями: # /etc/wpa_supplicant/wpa_supplicant.conf ctrl_interface=/run/wpa_supplicant update_config=1 network={ ssid="network_ssid" psk="secret" } Затем говорим: sudo systemctl enable wpa_supplicant@wlp2s0 sudo systemctl start wpa_supplicant@wlp2s0 sudo systemctl status wpa_supplicant@wlp2s0 Получение настроек сети по DHCP настраивается путем редактирования файла конфигурации /etc/systemd/network/wireless.network аналогично тому, как ранее это делалось для витой пары (см пост Как я устанавливал Arch Linux на свой ноутбук http://eax.me/archlin

Linux ALSA

Настройка звука: ALSA Звук просто работает. Просмотреть список аудио-устройств можно так: lspci | grep -i audio cat /proc/asound/card*/id aplay -l Регулировка громкости: alsamixer Для изменения звуковой карты, используемой в системе по умолчанию, можно воспользоваться asoundconf (AUR): asoundconf list asoundconf set-default-card PCH На самом деле, этот скрипт просто правит ~/.asoundrc и ~/.asoundrc.asoundconf. Также есть утилита asoundconf-gtk, делающая все то же самое, только через GUI. Удобно.

Linux PulseAudio

Настройка звука: PulseAudio Просто использовать ALSA напрямую иногда неудобно. PulseAudio — это такой уровень абстракции над ALSA и/или OSS. Для нас PulseAudio интрересен главным образом тем, что он позволяет переключать звуковые карты на лету без перезапуска приложений, чего ALSA не умеет. Кроме того, не все программы нормально работают из коробки при отсутствии PulseAudio, например, тот же Cmus. Дополнение: См также новость Причина прекращения поддержки звуковой системы ALSA в Firefox на opennet.ru . Установка PulseAudio: sudo pacman -S pulseaudio pulseaudio-alsa Запустить / остановить PulseAudio: pulseaudio --start pulseaudio --kill Чтобы PulseAudio увидел все приложения и внешние звуковые карты, их может потребоваться перезапустить и переподключить соответственно. Для автозапуска я прописал PulseAudio в конфиг i3. Список звуковых карт: pactl list cards short Список синков: pactl list sinks short Установить синк по умолчанию: pacmd set-default-sink NAME

Linux Фаервол iptables

Включаем iptables: sudo systemctl enable iptables sudo systemctl start iptables sudo systemctl status iptables Правила берутся из файла /etc/iptables/iptables.rules, рядом с ним есть файл с примерами. Сохранение правил: sudo sh -c 'iptables-save > /etc/iptables/iptables.rules' Загрузка правил: sudo sh -c 'iptables-restore < /etc/iptables/iptables.rules' Все остальное вы найдете в посте Настройка фаервола с помощью iptables за пять минут. http://eax.me/iptables/

Linux apt-get force

Бывает что пакет из других репозиториев содержит файл, аналогичный уже установленнму и возникает ошибка при установке этого пакета, воспользуемся опцией принудительной перезаписи "--force-overwrite" apt-get -o Dpkg::Options::="--force-overwrite" upgrade apt-get -o Dpkg::Options::="--force-overwrite" install -f apt-get -o Dpkg::Options::="--force-overwrite" install python-profiler apt-get -o Dpkg::Options::="--force-all" install -f Иногда бывает неисправимая ошибка в установке пакета либо его удаления Воспользуемся варварским способом, если другое не помогло ls /var/lib/dpkg/info/qemu-user-static* /var/lib/dpkg/info/qemu-user-static.list /var/lib/dpkg/info/qemu-user-static.md5sums /var/lib/dpkg/info/qemu-user-static.prerm /var/lib/dpkg/info/qemu-user-static.postinst /var/lib/dpkg/info/qemu-user-static.postrm При установке sudo rm /var/lib/dpkg/info/qemu-user-static.postinst При удалении sudo rm /var/

Linux второй static IP-адрес

ВВедение 2 условные группы: основанные на RedHat (Fedore, CentOS, ASPLinux и так далее) и все остальные. Такое условное разделение на группы здесь не случайно, так как у RedHat и похожих на него операционных систем, есть одно явное отличие в настройке сетевых интерфейсов. У обычных Linux систем (вторая группы) все настройки сетевых интерфейсов, кроме исполняемых скриптов, лежат в /etc/network/, а у RedHat они исторически размещаются в /etc/sysconfig/network-scripts. Синтаксис и структура конфигурационных файлов также сильно отличается. Добавить второй IP-адрес в RedHat/CentOS/ASPLinux и т.д. В этих ОС конфигурации каждого интерфейса отведен отдельный файл. Если открыть директорию /etc/sysconfig/network-scripts, то можно их увидеть. Они имеют вид ifcfg-eth0, ifcfg-eth1 и т.д. Чтобы добавить к существующему интерфейсу еще 1 IP-адрес, нам нужно создать новый файл ifcfg-eth0:1 с новыми настройками: nano /etc/sysconfig/network-scripts/ifcfg-eth0:1 и в него поместить код: RE

Linux Android tftp

1.fastboot-burn.bin: spi sf probe 0 mw.b 0x81000000 ff 0x70000 tftp 0x81000000 fastboot-burn.bin sf erase 0x0 0x70000 sf write 0x81000000 0x0 0x70000 2.bootargs-DDR-512MB.bin: spi sf probe 0 mw.b 0x81000000 ff 0x10000 tftp 0x81000000 bootargs-DDR-512MB.bin sf erase 0x70000 0x10000 sf write 0x81000000 0x70000 0x10000 3.base.img: nand mw.b 82000000 ff 600000 tftp 82000000 base.img nand erase 0x0 600000 nand write 82000000 0 600000 4.logo.img: nand mw.b 82000000 ff 200000 tftp 82000000 logo.img nand erase 600000 200000 nand write 82000000 600000 200000 5.kernel: nand mw.b 82000000 ff A00000 #alloc mem:addr,len tftp 82000000 kernel #get kernel to addr nand erase 4000000 A00000 #erase nand:addr,len nand write 82000000 4000000 A00000 #write mem->nand 6.system: nand mw.b 82000000 ff A400000 tftp 82000000 system.yaffs2_8k4b nand erase 4A00000 A400000 nand write.yaffs 82000000 4A00000 REAL_SIZE 7.userdata: nand mw.b 82000000 ff 1000000

Linux android sdk

2、 android_sdk 下载地址: http://www.eoeandroid.com/sdk/4.0/android-sdk_r17-linux.tgz 解压android sdk : tar -xvf android_sdk.tgz 设置环境变量: 1)打开profile文件 nano /etc/profile 2)在最后加入 export ANDROID_HOME=/home/disk1/android/android-sdk-linux export PATN=$PATH:$ANDROID_HOME/tools 保存退出。 3)在终端执行. /etc/profile 使环境变量生效(注意.后有个空格) 在终端输入export如果能看到: declare-x ANDROID_HOME="/home/disk1/android/android-sdk-linux" 和 PATH里有/home/disk1/android/android-sdk-linux/tools即为配置成功。

Linux LD_LIBRARY

Динамически подключаемые библиотеки для поиска linux添加动态链接库搜索路径 第一种是修改系统文件: 在 /etc/ld.so.conf 文件中指定了默认的动态链接库查找路径,我的 /etc/ld.so.conf 文件内容是这样的 include /etc/ld.so.conf.d/*.conf 也就是说它间接的指定了定义路径的文件,我们只需要把需要的路径加到/etc/ld.so.conf.d目录下的任何一个文件中,再运行ldconfig就可以了,但为了容易理解,最好是找一个相关的文件,或者重新建立一个文件,把需要添加的路径写入然后运行ldconfig 第二种是运用变量LD_LIBRARY_PATH: 把需要添加的路径加入到LD_LIBRARY_PATH中,注意如果多于一个要用冒号隔开。如: export LD_LIBRARY_PATH=/usr/local/lib/minigui 第三种是编译的时候设定: 在编译源码的时候可以用参数:-Wl, -rpath指定动态搜索的路径即可。 еще export LD_PRELOAD=$SNAP/usr/lib/bindtextdomain.so  Autotools (также известной под названием GNU Build System). Если вы когда-нибудь собирали программу при помощи волшебной последовательности команд ./configure && make && sudo make install, значит вы использовали Autotools. Из недостатков Autotools, как вы и сами скоро убедитесь, можно отметить использование довольно стремного синтаксиса. Именно поэтому в третьем тысячелетии, вообще-то говоря, лучше использовать какой-нибудь CMak

Linux kernel timeconst

安卓内核编译错误 kernel/timeconst.h defined(@val) 错误情况 今天编译安卓内核出现错误, $ ./mk -k # # configuration written to .config # scripts/kconfig/conf --silentoldconfig Kconfig CHK include/linux/version.h CHK include/generated/utsrelease.h make[1]: 'include/generated/mach-types.h' is up to date. CALL scripts/checksyscalls.sh CHK include/generated/compile.h TIMEC kernel/timeconst.h Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/ timeconst.pl line 373. /run/media/playpeng/Devel/AndroidDevel/Android4_4/kernel/kernel/Makefile:140: recipe for target 'kernel/timeconst.h' failed make[1]: *** [kernel/timeconst.h] Error 255 Makefile:948: recipe for target 'kernel' failed make: *** [kernel] Error 2 make: *** Waiting for unfinished jobs.... 解决方法 Google一番,跟自己猜测的一致,就是perl新版本语法有变化,不支持 defined(@val) 这种用法了, 直接改成 if (@val)这种即可,google到老外网站,是如下的patch diff --git a/kernel/ timeconst.pl b/kernel/

Linux net

Переименовать сетевой интерфейс в Linux старое имя: eth0 новое имя: eth1 ifconfig eth0 down ip link set eth0 name eth1 ifconfig eth1 up

aria2c

Файл aria2.conf с нормальной работой сессии, после сбоя загрузки Справка по русски https://aria2.github.io/manual/ru/html/_sources/aria2c.txt ## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ## ## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释  ## ## 文件保存相关 ## # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置 dir=Aria2Data # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M disk-cache=32M #所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持 file-allocation=prealloc #不进行证书校验 check-certificate=false # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # 预分配所需时间: none < falloc ? trunc < prealloc # falloc和trunc则需要文件系统和内核支持 # NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项 #file-allocation=falloc # 断点续传 continue=true ## 下载连接相关 ## # 最大同时下载任务数, 运行时可修改, 默认:5 max-concurrent-downloads=2 # 同一服务器连接数, 添加时可指定, 默认:1 max-connection-per-server=3 # 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M # 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载 min-split-size=10M # 单个任务最大线程数, 添加时可指定, 默认:5 split=5 # 整体下载速度限制, 运行时可修