LINUX.ORG.RU

удалить или переименовать программно физический сетевой интерфейс(phy0) из линукс

 , ,


0

2

Есть ли возможность каким либо образом удалить сетевой интерфейс, как то отключить сетевую карту чтобы он исчез, или переименовать его?

Можно выгрузить модуль ядра, отвечающий за данный сетевой интерфейс. Из недостатков - если все сетевые карты используют выгруженный драйвер - они все пропадут.

Переименовать тоже можно, но тогда интерфейс останется видным(пусть и под новым именем)

Еще вариант - можно создать отдельный network namespace(например с именем trash) и позасовывать в него «неугодные интерфейсы». Тогда в основном namespace они будут не видны(но при желании из под рута их можно будет достать обратно)

Короче, уточни задачу - чего ты хочешь достичь?

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

Да сие действо на андроид происходит, вот у него есть встроенная сетевуха, ей по дефолту когда её включаеш присваивается phy0 ну и на него wlan0. Вот мне нужно phy0 переименовать или удалить. Узнать бы где вообще хранится список этих интерфейсов тогда я думаю и можно былоб это сделать.

hoblahoba
() автор топика
Ответ на: комментарий от CrazyAlex25

iface eth1 inet manual

Не скроет интерфейс из общего списка

alias eth1 off

О таком варианте признаюсь забыл - как-то не приходилось применять его к сетевым картам

Pinkbyte ★★★★★
()
Ответ на: комментарий от hoblahoba

сие действо на андроид происходит

Об этом сразу стоило бы говорить, учитывая что ядро в андроиде сильно-сильно патченное обычно

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Панемаю, но из зацепок только связь с линукс поэтому и интересуюсь, как мне найти где эти интерфейсы хранятся (то что iw dev выводит? Если это динамически в оперативе лежит то плохо, если в файле то лучше, ну и 100% устраивающий меня вариант отрубить сетевуху, но модуля у неё нет (lsmod ничего вообще не выводит) все в ядре видимо.

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba

Можешь попробовать вот так, не уверен правда что на андроиде это сработает.

Вопрос о том, как это добавить в автозапуск остается открытым - если у тебя там /system смонтированный в r/w или Magisk на худой конец - тогда оно как-то решается. Иначе - я хз.

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Ответ на: комментарий от Pinkbyte

третий вариант - анбинд драйвера от устроства. не зависит от того, драйвер монолитом или модулем, не трогает другие устройства. нужно только найти девайс в /sys/

NiTr0 ★★★★★
()
Ответ на: комментарий от CrazyAlex25

phy0 по идее удалять надо через iw phy, но я не настоящий сварщик - давно не конфигурял Wi-Fi в Linux через консоль на низком уровне

Pinkbyte ★★★★★
()
Ответ на: комментарий от NiTr0

Хм, логично, припоминаю что так делал для PCI-девайсов для проброса через vfio, а тут что-то не подумал применить ту же логику.

Linux, блин. Реки костылей, моря возможностей :-)

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Есть и полный доступ и мажиск, наводка интересная но устроено ту т все не так просто

hoblahoba
() автор топика
Ответ на: комментарий от CrazyAlex25

«Но сач девайс», потому что таким образом только виртуальные интерфейсы удалять можно

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba

Не падскажете синтаксис как через iw phy удалить phy0 если у кого линукс под рукой?

hoblahoba
() автор топика
Ответ на: комментарий от Pinkbyte

Короче как удалить так и не нашло через iw но ренэйм возможен(справку то я и не читал никогда по команде) думаю меня устроит.

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba
busaddr=$(basename $(realpath /sys/class/ieee80211/phy0/device))
driver=$(realpath /sys/class/ieee80211/phy0/device/driver)
echo $busaddr > $driver/unbind

Действует до перезагрузки или до переподключения устройства.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

В папке /sys/class/ieee80211/phy0/device/driver находятся папка с800000.qcom,icnss и файлы bind uevent и unbind. Осталось понять как это использовать.

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba

Пытаюсь выполнить ./unbind в этой папке выдает petmission denied

hoblahoba
() автор топика
Ответ на: комментарий от Pinkbyte

Не работает, ознакомился я уже с информацией по ссылке, непохожие что подходит, это всё-таки андроид, вот анбинд драйвера я думаю поможет но как осуществить не знаю.

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba

если ты из под рута выполняешь команду и всё равно не помогает, то это либо SELinux тебе мешает, либо само ядро такое

Pinkbyte ★★★★★
()
Ответ на: комментарий от Pinkbyte

Так ну анбинд сделался а интерфейс остался) Андроид бл*ть- мы не эпл- мы не скрываем костыли-мы на них ходим…

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba

Кароче с уверенностью можно сказать что андроид слишком сильно порезан для выполнения настроек аналогичных линуксу поэтому тему можно закрывать.

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba

Ты что то не так делаешь. Но что именно невозможно понять, поскольку не пишешь ни команд, которые запускаешь, ни вывод этих команд.

Запусти в одной консольке udevadm monitor -k, а в другой анбайнд. Должен в мониторе получить события о удалении устройств. И покажи наконец вывод команд, мистер самоуверенность.

iliyap ★★★★★
()
Ответ на: комментарий от hoblahoba

ну да, анбинд - драйвер отключается от устройства, потом - инициировать по-новой поиск драйверов для устройства (echo add >/sys/…/uevent)

NiTr0 ★★★★★
()
Ответ на: комментарий от iliyap

udevadm никакого нет. Не анбинд сработал, все по гайду echo название > путь/unbind - но phy0 не исчез, вот когда допустим внешку отключаеш - сразу все исчезает.

hoblahoba
() автор топика
Ответ на: комментарий от hoblahoba

Устройство отключено потому что встроенный вайфай успешно не запускается)

hoblahoba
() автор топика
Ответ на: комментарий от NiTr0

Да мне не нужно его заново подключать а нужно как раз чтоб само устройство отключено было- короче нужен эффект как от выдергивания внешнего адаптера.

hoblahoba
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.