LINUX.ORG.RU

Избранные сообщения Moattasam

Коллективный it-блог, но не habr

Форум — Talks

А что есть кроме habr где можно почитать статьи живых пользователей про администрирование linux, сетей и прочего подобного (но не про программирование, хотя если в перемешку, то пофиг). Убить время в метро и просто быт в курсе того, что творится вокруг, а то я как-то выпал из всего что происходит.

Сразу скажу, что знаю про:
reddit - это скорее форум и им надо уметь пользоваться, мне как-то не зашло, не могу найти интересующие подхабы
medium - очень большая платформа, надо знать кого читать (но если есть хорошие авторы по linux/сетям, советуйте
livejournal - аналогично medium, но стремительно помирает

Язык: Русский/Английский

 ,

Kolins
()

Firefox. Встроенный переводчик.

Форум — Desktop

Доброго времени! На сколько мне известно, в Firefox (в версиях выше 41) имеется встроенный переводчик страниц). О чем впринципе и свидетельствуют некоторые скрытые настройки:

  1. browser.translation.detectLanguage
  2. browser.translation.ui.show
  3. browser.translation.engine Так же на просторах интернета есть инструкции о том, как включить данный переводчик. К примеру вот:
    1. Убедитесь, что у вас установлен Firefox 41 или выше, так как в более младших версиях «огненного лиса» данного функционала нет. Чтобы увидеть версию, введите «about:support» в адресную строку браузера и нажмите Enter:
    1. Введите в адресную строку «about:config» и нажмите «Enter». В появившемся сообщении кликните по кнопке - «Я обещаю, что буду осторожен!»
    1. С помощью поисковой строки найдите параметр «browser.translation.detectLanguage» Дважды кликните по строчке с ним левой кнопкой мыши чтобы присвоенное ему значение сменилось с «false» на «true»
    1. Сделайте то же самое для параметра «browser.translation.ui.show»
    1. Далее найдите параметр «browser.translation.engine». Дважды кликните по нему и в появившемся окошке сотрите «bing», а вместо него вручную напишите «yandex» и нажмите кнопку ok
    1. Перейдите на сайт Yandex’s Translate API и войдите там в свою учётную запись на Яндекс, нажав ссылку Log in в верхнем правом углу по ссылке: https://tech.yandex.com/translate/
    1. Теперь прокрутите страницу вниз и кликните по ссылке «Get a free API key»
    1. На следующей странице поставьте галочку напротив «I have read….» и кликните по кнопке «Get API key»
    1. В итоге Яндекс сгенерирует для вас уникальный ключ, благодаря которому вы сможете встроить его переводчик в ваш Firefox. Скопируйте этот ключ в любой текстовый файл
    1. Вновь вернитесь на страницу «about:config». Щёлкните мышкой на пустом месте и в контекстном меню выберите «Создать» - «Строка»
    1. В появившемся окошке в качестве имени строки укажите "browser.translation.yandex.apiKeyOverride "
    1. В следующее, заключительное, окошко целиком скопируйте ключ, полученный в пункте 9.
  • Теперь закройте все служебные страницы, перезапустите браузер и попробуйте зайти на любой иностранный сайт.

И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

Firefox 73.0. И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

И впринципе данная инструкция (по моему мнению) имеет право на жизнь, но дело в том, что у меня на пункте 10 возникает проблема, в контекстном меню нет «Создать», да и вообще контекстное меню страницы about:config выглядит так же как и на любой другой странице, хотя там добжно появляться совсем другое (служебное) контекстное меню. Ну и собственно теперь сам вопрос. Как воплотить данную инструкцию в Firefox?

  • Firefox 73.0.
  • Kubuntu 18.94 LTS.

 

parnyagan
()

ядро, initramfs и драйвера видеокарты

Форум — General

Объясните, пжлста. Насколько я понимаю, при загрузке системы у ядра нет цели загрузить все все все. Оно грузит только необходимое - управление процессами, памятью и т.п., дальше грузит initramfs, чтобы взять необходимые модули для монтирования корня, монтирует корень, дальше запускается система инициализации, которая запускает udev и тот решает, что делать с оборудованием.

Так вот, если ядру не нужна особо видеокарта, и udev должен решать, что делать с видеокартой, а initramfs нужен только чтоб примонтировать корень, то зачем ядро из initramfs грузит драйвера видеокарты? Потому что grub говорит ядру загрузить plymouth?

Просто в гайдах пишут, что ядро может загрузить nouveau из initramfs раньше, чем загрузится udev и решит загрузить другой модуль, поэтому при блоклисте нужно обновлять initramfs.

В общем, вопрос такой - ядро же само по себе не будет грузить видеокарту, это grub говорит ядру загрузить драйвер видеокарты для splash скрина?

 ,

Datt_
()

Загрузка любого дистрибутива в RAM

Форум — Talks

Здравствуйте мои юные кали-хакеры и любители оставаться анонимными. С утра, ковыряя VDS (пользуюсь услугами ру-провайдера), [ДАННЫЕ УДАЛЕНЫ] запрос, и [ДАННЫЕ УДАЛЕНЫ] дамп диска [ДАННЫЕ УДАЛЕНЫ].

А теперь скрипт, который из кастомного, т.е. созданного и настроенного вами chroot'а создаёт initramfs образ, готовый к загрузке и работе в tmpfs.

С ним вы можете на любой системе прямо «на лету» свичнуться в tmpfs, хоть прямо сейчас, на своём компьютере. Предварительно установив в chroot любой дистрибутив по желанию и настроив его под себя. А потом скриптом упаковать его в initramfs образ и свичнуться, да.

Для создания минимального (от слова «маленький», а не «огрызок») образа потребуется squashfs-tools. Чтобы свичнуться «на лету» нужен kexec-tools. Установите их. В ядре должны быть включены опции: CONFIG_OVERLAY_FS=y, CONFIG_SQUASHFS=y и CONFIG_SQUASHFS_XZ=y. [личное мнение: ZSTD получается размером больше, чем XZ]

Например. Хотите генту?

# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
# cd ..

На этом этапе мы получили ванильную генту в gentoo_chroot/. Рекомендую её настроить, хотя бы сделать chroot gentoo_chroot/ /bin/bash и установить passwd для root, иначе в систему вы не войдёте. Я не знаю, что это за особенность такая, не давать установить пароль если его нет. В моём CRUX когда пароль на root отсутствует и ты логинишься первый раз (в tty или в ssh по ключу), оно просто предлагает установить пароль. Какая тут может быть дыра в безопасности на свежеустановленной системе? Не знаю...

Предлагаю так же в gentoo_chroot/ скопировать модули и фирмварь для корректной работы текущего ядра и железа.

# cp -a /lib/modules gentoo_chroot/lib/modules
# cp -a /lib/firmware gentoo_chroot/lib/firmware

Ну и создадим образ наконец.

# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd

Усё. У нас теперь целая настоящая гента в gentoo_initrd файлике упакована. Давайте загрузимся же в неё скорее с текущим ядром.

# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e

Если вы не хотите делать kexec по каким-то причинам, то положите этот же образ в свой /boot, а в параметрах загрузки укажите initrd /gentoo_initrd. Перезагрузитесь и получите тот-же результат.

Ура! Гента загрузилась. Тоже самое можно проделать с любым дистрибутивом, просто установите его, настройте как вам угодно, а затем скриптом создайте initramfs образ. Я уж взял для примера Gentoo, не стал лишний раз приводить в пример CRUX.

Жмём Reset чтобы сбросить всё и загрузиться в свою систему с морально устаревшего M.2 NVMe накопителя обратно.

Перевёл свою VDS на работу в tmpfs. Диск /dev/vda отформатировал в NTFS. Рекомендую всем. 👍👍👍👍👍👍

Скрипт:

#!/bin/bash
#
# Author: Sp00f1ng <sp00f1ng@sp00f1ng.com>
# License: Public Domain
#
################################################################################
#
# mkchrootrd chroot_directory/ [initrd_image]
#
################################################################################
# 
# Depends on: squashfs-tools
# Optional:   kexec-tools
# Kernel:
#
# File systems  --->
#    <*> Overlay filesystem support
#    [*] Miscellaneous filesystems  --->
#       <*> SquashFS 4.0 - Squashed file system support
#          [*] Include support for XZ compressed file systems
#
################################################################################
#
# Example usage:
#
# mkdir gentoo_chroot/
# cd gentoo_chroot/
# wget https://bouncer.gentoo.org/fetch/root/all/releases/amd64/autobuilds/20200519T155804Z/stage3-amd64-20200519T155804Z.tar.xz
# tar xf stage3-amd64-*.tar.xz
# rm stage3-amd64-*.tar.xz
#
# [.. do something else with gentoo_chroot/ like additional configuration ...]
# [ cp -a /lib/modules ./lib/modules ]
# [ cp -a /lib/firmware ./lib/firmware ]
#
# cd ../
#
# ./mkchrootrd gentoo_chroot/ ~/gentoo_initrd
#
# eval $(cat /proc/cmdline | cut -f 1 -d \ )
# kexec -l $BOOT_IMAGE --initrd=gentoo_initrd --reuse-cmdline
# kexec -e
# 
# Have fun and happy hacking day 1 <3 <3 7 !

panic() {
	if [ -e "$TMP" ]; then
		rm -rf $TMP 2>/dev/null
	fi
	exit ${1:1}
}

got_help() {
	grep ^\# "$0"
}

got_cmdline() {
	while [ "$1" ]; do
		if [ ! -n "$CHROOT_DIR" ]; then
			CHROOT_DIR="$1"
			shift
			continue
		fi
		if [ ! -n "$INITRD_IMG" ]; then
			INITRD_IMG="$1"
			shift
			continue
		fi
		shift
	done
}

cp_bin() {
	local src="$1"
	local dst="$2"
	local dep=""

	if [ "$dst" = "" ]; then
		dst="$src"
	fi

	if [ -e "$TMP$dst" ]; then
		return
	fi

	install -D -m 0755 "$src" "$TMP$dst"

	for dep in $(ldd "$src" 2>/dev/null | grep -o '/.* '); do
		cp_bin "$dep"
	done
}

mk_env() {
	for dir in proc sys dev run mnt overlay; do
		install -d $TMP/$dir
	done

	for dev in console tty tty1 null; do
		cp -a "/dev/$dev" "$TMP/dev/$dev"
	done

	for bin in sh switch_root mount umount mkdir rmdir; do
		cp_bin "$(which $bin)"
	done

	touch $TMP/init
	chmod +x $TMP/init

	cat > $TMP/init << EOF
#!/bin/sh
mount -t proc none /proc
echo "0" > /proc/sys/kernel/printk
mount -t sysfs none /sys
mount -t devtmpfs devtmpfs /dev
mount -t tmpfs none /run
mount -t tmpfs tmpfs /overlay
lowerdir="/lower"
upperdir="/overlay/upper"
workdir="/overlay/work"
mkdir -p \$lowerdir
mkdir -p \$upperdir
mkdir -p \$workdir
mount -t squashfs -o ro /root.sqfs \$lowerdir
mount -t overlay -o ro,lowerdir="\$lowerdir",upperdir="\$upperdir",workdir="\$workdir" overlay /mnt
umount /proc
umount /sys
umount /dev
umount /run
exec switch_root /mnt /sbin/init
EOF
}

main() {
	CHROOT_DIR=""
	INITRD_IMG=""

	got_cmdline "$@"

	if [ ! -n "$CHROOT_DIR" ] || [ ! -n "$INITRD_IMG" ]; then
		got_help
		panic 0
	fi

	if [ ! -d "$CHROOT_DIR" ]; then
		echo "'$CHROOT_DIR' is not directory."
		panic 1
	fi

	if [ ! -x "$(which mksquashfs)" ]; then
		echo "'mksquashfs' squashfs-tools not found."
		panic 1
	fi

	mk_env

	mksquashfs $CHROOT_DIR $TMP/root.sqfs \
		-b 1048576 -comp xz -Xdict-size 100%

	cd $TMP
	echo "Building Initial RAM Disk [$INITRD_IMG]"
	find . -print0 | cpio --null --create --format=newc --verbose > "$INITRD_IMG"
	echo "Done [$INITRD_IMG]"
}

trap "panic" INT HUP QUIT TERM EXIT

readonly MKCHROOTRD_COMMAND="$0"
readonly MKCHROOTRD_VERSION="1.0"

TMP=$(mktemp -d)

main "$@"

# EOF

 mkchrootrd,

Spoofing
()

Игровые топы. По версии меня

Форум — Games

Самые лучшие, при этом крутые, и вообще и всё остальное игры всех времён и народов, Top6. За скобки выносится то, что выше этого топа - это Doom, Mario и Tetris.

1. The Secret of Monkey Island
2. Civilization
3. Space Quest 5
4. Duke Nukem 3D
5. Dune II
6. X-COM: Enemy Unknown


Самые забытые шедевры мой Top6. На них не клепают современные движки, их не обсуждают и их редко включают в топы.

1. Simearth
2. Street Rod
3. Horde
4. Defender of the Crown
5. It come from the desert
6. Mad TV

Хотел сюда Sundog добавить, но вроде бы на него современный ремейк под названием FTL вышел, знач не сильно забытый


Самые крутые саундреки из игр:

1. Monkey Island 2: Le Chuck Revenge (а также mi1 и 3)
2. Warcraft II : тамтатмаааааамтамтамтамтам
3. Duke 3D : туду-ту туду-ту тудутууууууууу
4. Need for Speed Underground
5. The Battle for Wesnoth
6. Red Alert III


Срыв башки:

0. Doom
1. The Elder Scrolls II: Daggerfall - размер графически выполненного мира и количество багов. ну или Minecraft, я их не различаю
2. The 7th Guest
3. Blade Runner
4. Carmageddon
5. Heroes of Might and Magic II


Самые не оправдавшие ожидание игры:

1. Omikron


Самые лучше игры, не вошедшие ни в один из этих топов:

1. Pizza Tycoon

 

buratino
()