From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on sa.local.altlinux.org X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,FUZZY_XPILL autolearn=no autolearn_force=no version=3.4.1 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-transfer-encoding:content-language; bh=TJxFchW7c0KQzQkuHvXoW3esfjjyLcJoqpXOJDDvkPg=; b=VjqABA9p7ZjOsswSqo/dVb7S1Uoo8YgJTUNWXCZaPOFUfqtkwHH45pZ8cTlJr0fUk+ 9y3HaCjOSNRlKWX3vNgrh/aZ/dMDRBIeNA4J6KI74hTW5KxCrs5tP1IgtUmiRjH65kXg ZP3itodaWiz+SmYmXczxxNv8GpNWV2NtJyZwPGbU2dTj3IU/1eDWWA/fy3UIjQRYpMr4 oGFHNpElgwNc+j6HqutmqRqzP4xnO7XftQKsM3zdS3Zu7lTbiyH9hiGo9KJEM1GkkO7n x3vceQMq2LT+wPys3aa0y1XhK3jK/1nLeyFcfVXteRA9mD1+tJKrkbP0SmhjqyT/5aI1 n+iQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-transfer-encoding :content-language; bh=TJxFchW7c0KQzQkuHvXoW3esfjjyLcJoqpXOJDDvkPg=; b=RCUrTB85RCRcz9yd2wPZcrZhvKCE+U6JWkdQRPMmKR/pBNmV5KSbmkHIk2ukwyX6hw ZUKhkHx4zYXwaKJEZclrlrscBLa0aJspe7LEm6dbryzPUZqdYJgem/h3ZzUz2dj7ZYBT g6GiHRLBTDYB1YBtI1kTiy9AJrN4wOdlgb0A+18m+jtLpyqLELNEhU2EOJpDNliNPk8I uEcKxY4n+T5utRJ5RJn4oFxiyxyVTWGSku0sR64KtExY9EKIckm7h8Af0sqM28A9kbvs oMQlXcCd8wKESrrCYHRnKJHVTTfUO9sOkPlQ0qnMnZKeynGgO2d+/xupAhPpHQ8JtSmU +WAg== X-Gm-Message-State: APjAAAW/86kxRWnXmpVojLZVzYLjFg2B4VT7i+Vp6nF8hSY5WQU9boEU mo/ZYLQQWa52ATiDWZPZcL3sNKtk X-Google-Smtp-Source: APXvYqy/UtVh8cdMBxFc4xpTgbd8RQiM3VtNYWUWBHePB7yT4fOAvoF2Jd/ZFy6xrs+hcaI/JPrDtQ== X-Received: by 2002:a2e:9758:: with SMTP id f24mr5123207ljj.58.1560708236894; Sun, 16 Jun 2019 11:03:56 -0700 (PDT) To: devel@lists.altlinux.org References: <46c6667c-c9a3-f696-169b-bb9e8f83eaad@gmail.com> <20190615162952.GE8901@Legion-PC.fortress> <5ce6f6cb-01ec-1270-8f1d-215ce7148f0f@gmail.com> <20190616121020.GF8901@Legion-PC.fortress> From: Leonid Krivoshein Message-ID: Date: Sun, 16 Jun 2019 21:00:56 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 In-Reply-To: <20190616121020.GF8901@Legion-PC.fortress> Content-Type: text/plain; charset=koi8-r; format=flowed Content-Transfer-Encoding: 8bit Content-Language: ru Subject: Re: [devel] =?utf-8?b?dWRldmxlc3Mg0LjQvdGE0L7RgNC80LDRhtC40Y8g0L4g?= =?utf-8?b?0LHQu9C+0YfQvdGL0YUg0YPRgdGC0YDQvtC50YHRgtCy0LDRhQ==?= X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 16 Jun 2019 18:03:59 -0000 Archived-At: List-Archive: List-Post: 16.06.2019 15:10, Alexey Gladkov пишет: > On Sat, Jun 15, 2019 at 07:53:05PM +0300, Leonid Krivoshein wrote: >> Да, во многом информация между sysfs и тем, что udev хранит в ramfs, >> пересекается, и про /sys/dev/block я конечно же знаю. Раньше я так и >> делал, получая часть информации через sysfs, а другую часть -- через >> blkid, blockdev, итп, на что требуется root. Поэтому и озадачился >> сабжем. Хотелось бы написать основной код, работающий без рутовых >> привилегий. Но вопрос в том, возможно ли это на системах без udev. > Ты хочешь получить информацию, которая предназначена только руту :) Почему бы и нет? Для дальнейшей обработки в непривилегированном коде. $ lsblk -f # выдаёт же её обычному пользователю > Очень похоже, что ты хочешь сделать udev в виде утилиты suid-ной. Потому > что для получения этой информации нужен рут. Это может быть отдельный > демон с правами или утилита. Зачем делать SUID'ную утилиту, если работающий под root'ом udev уже собрал всю необходимую информацию и предоставил её с доступом на чтение всем простым смертным. >>> Главная проблема в том, >>> чтобы загрузить правильный модуль, чтобы появилась информация в sysfs. >> С этой проблемой с некоторых пор тоже знаком. И как её нынче принято >> решать в отсутствии udev? Пока слышал только две версии: сборка ядра со >> всеми модулями и скриптовый цикл, пытающийся загрузить все модули подряд >> из initramfs. > Ой-ой. Ты забыл как работает udev. Он сам никаких модулей не грузит. С > этим система и без него справляется. Ядро вызывает утилиту прописанную в > /proc/sys/kernel/modprobe [1]. Когда в последний раз принимался за эксперименты с udevless [2], столкнулся с такой проблемой: udev'а можно в любой момент попросить повторить все события, что были в процессе обнаружения "железа", а как быть с этим без udev'а? Допустим, одним из первых действий скрипт в initramfs пишет в /proc/sys/kernel/modprobe, но как быть с теми событиями, что уже проскочили до этого шага? И, с чем ещё столкнулся: есть модули, которые не грузятся сами, если их не грузить через modprobe. Типичный пример -- qemu "оборудование". Может, я что-то не так делаю, но избавиться от udev пока что у меня не вышло. > Эта утилита (в большинстве случаев это > /sbin/modprobe) загружает модуль. > > [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/plain/Documentation/debugging-modules.txt [2] https://www.altlinux.org/KVM/Helper#Про_эксперименты_с_devtmpfs_без_udev Было бы интересно узнать твоё мнение на этот счёт: возможна ли загрузка с наполненным модулями и фирмварью initramfs без своего /init внутри? -- Best regards, Leonid Krivoshein.