456 сообщений в этой теме

Vascom    591

Э нет, это ты заблуждаешься.

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

Так что либо прими всё как есть, либо вникай сам.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lnx    177
4 часа назад, ARV сказал:

Не понимаю я некоторых вещей, мне советуют их понять, но как?Как можно понять то, что не логично?

Тебе приводят материалы к прочтению, для направления твоей логики в правильное русло, но ты их не читаешь.

Если бы ты прочитал приведённую мной ссылку про ConsoleKit и политику Ubuntu по поводу группы audio, ты бы не написал этот идиотизм:

Цитата

А вместо объяснений, куда спряталась логика, мена называют троллем и говорят, что я не хочу разбираться. В логике - хочу. Только во что вникать я должен, если противоречие никто не объясняет: почему один и тот же юзер не взирая на группы наделяется разными правами в зависимости от интерфейса? почему права доступа к файлам не меняются, содержимое групп не меняется, вообще ничего не меняется, а права юзера - меняются?! Где тут логика и в чем она?

Ответ на твой вопрос находится в последнем абзаце по той ссылке "Why". Соберись, сделай это и сам найди ошибку в своём утверждении.

Априори, система Linux - это открытая альтернатива UNIX, априори многопользовательская система. Система состоит из  множества подсистем разного уровня. Априори, доступ к различным ресурсам разграничен. Такова архитектура, философия, политика системы - что не разрешено, то запрещено. Логика проста - при компрометации одной подсистемы, злоумышленник (вредоносное ПО) не получает доступа к ресурсам другой. Помнишь "Всё есть файл?" Файлы устройств находятся в директории /dev, их создаёт менеджер устройств (например, udev). Он же устанавливает владельца и права доступа на этот файл. В зависимости от принадлежности ресурса к той или иной подсистеме, выбирается владелец (например, uucp, storage, usb, audio, video и тд.) четкого стандарта нет, в разных дистрибутивах эта политика может отличаться.

У каждого дистрибутива свои задачи и философия. Компания Canonical решила создать систему для простых людей - Ubuntu, за основу взяв серверную версию своего продукта - добавили в дефолтную комплектацию графическую подсистему (т.н. иксы - X, X-Window). (сама Ubuntu основана на Debian) Чтобы не ломать неокрепшую психику мышеводов, добавили различные графические конфигурилки и подсистемы, которые позволяют пользователю работать с системой, не углубляясь в её особенности, в том числе, прозрачно для пользователя производя манипуляции с правами доступа к ресурсам. Того, что пользователь полезет в консоль, без иксов, видимо, не предусматривалось (думаю, начинающий не сразу и найдёт, как переключиться из иксов в консоль).

Цитата

Я меня черти тянут понять.

Не заметно. Когда "черти тянут понять", человек старается понять, делает сам что-то для этого. Что сделал ты, кроме упорного натягивания совы на глобус  продвижения своей логики, как единственно правильной?

Не встречал ни одного UNIX/Linux профи, который жаловался бы на нелогичность этих систем.

Изменено пользователем lnx

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
ARV    167
2 часа назад, lnx сказал:

Не встречал ни одного UNIX/Linux профи

Я не профи и не намерен им стать. Чувствуете разницу?

 

2 часа назад, lnx сказал:

Что сделал ты

1. Я запустил у себя дома на старом компе "сервер" без графического интерфейса, и на протяжении года или даже полутора за ним слежу, поддерживаю его работу и т.п.

2. Я терпеливо слушаю, как вы мне тыкаете и грубите, порой скатываясь в явное хамство.

Достаточно того, что я сделал САМ, без вашей помощи? А теперь скажите, чем вы перетрудились, помогая мне, кроме нравоучений? Ах да, вы мне дали ссылку на англоязычную статью по википедии, считая, что раз уж я решил пользоваться линухом, мне необходимо выучить английский... Вот прямо сейчас бросаю все, и пошел записываться на языковые курсы.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lnx    177

Ах, простите мою простоту, перейду на Вы, если это так принципиально.

1. Слабоват как-то прогресс за год...

2. Я тоже терпеливо отвечаю на вопросы, на что вижу лишь подобие троллинга в ответ. Помимо англоязычной статьи, я давал ссылки и на русскоязычные статьи. Дальнейшая дискуссия предполагала, что Вы ознакомились с материалом.

Вы даже не потрудились сообщить, что не владеете английским. (вообще, очень странно это слышать от программиста со стажем). Гуглопереводчик переводит на уровне достаточном для понимания.

В общем, удачи, с таким подходом...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
GDK    2
В 5/24/2017 в 14:19, ARV сказал:

И именно по этой причине "простому пользователю" по умолчанию можно пользоваться аудиоплейерами, а более опытному "администратору" в консоли по умолчанию это запрещено. Это логика или что?

Ну и в чём нелогичность то? О "простом пользователе" заботится GUI, более опытный "админ" пусть о себе заботится сам, на то он и более опытный.

  • Одобряю 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
lnx    177

Неплохая логика, одобряю.

Назвался груздем - полезай в короб.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Похожие публикации

    • Автор: admin
      Честный обзор миникомпьютера OMEGA 2. Характеристики, подключение и работа с командной строкой. Отправляем твит и компилируем свое приложение прямо на миникомпьютере.
      Ссылка на миникомпьютер: https://www.indiegogo.com/projects/omega2-5-linux-computer-with-wi-fi-made-for-iot
      Ссылка на документацию: https://docs.onion.io/omega2-docs/
      Ссылка на opkg пакеты: http://repo.onion.io/omega2/
    • Автор: vv7
      Всем привет !
      Да, вот так вот. Опять светодиод и опять не запускается.
      В чём косяк ?
      Питание - от автозарядки для мобилки ( 12В -> 5В ).
      Среда разработки ( IDE ): MPLAB X v3.35 Linux, компилятор C18.
      Программатор: PICKit3
      Прошивка, по-моему - нормальная.
      Сконфигурирован - нормально. ( Или нет ? )
      Элементы все рабочие.
      В наличие есть кварц: 4, 8, 10 МГц.
      Фотка со схемкой - в атаче.
      Осциллографа под рукой - нет .
      Исходник прошивки:

      #include "config_bits.h" #include <stdio.h> #include <stdlib.h> void main (void) { int i = 0; TRISA = 0x00; PORTA = 0x00; TRISB = 0x00; PORTB = 0xFF; TRISC = 0x00; PORTC = 0x00; TRISD = 0x00; PORTD = 0x00; TRISE = 0x00; PORTE = 0x00; while (1) { for ( i = 0; i < 1000000; i++) { PORTB = !PORTB; } } }
      Файл "config_bits.h":

      // PIC18F452 Configuration Bit Settings // 'C' source line config statements #include <p18f452.h> // CONFIG1H #pragma config OSC = HS // Oscillator Selection bits (HS oscillator) #pragma config OSCS = OFF // Oscillator System Clock Switch Enable bit (Oscillator system clock switch option is disabled (main oscillator is source)) // CONFIG2L #pragma config PWRT = OFF // Power-up Timer Enable bit (PWRT disabled) #pragma config BOR = ON // Brown-out Reset Enable bit (Brown-out Reset enabled) #pragma config BORV = 20 // Brown-out Reset Voltage bits (VBOR set to 2.0V) // CONFIG2H #pragma config WDT = OFF // Watchdog Timer Enable bit (WDT disabled (control is placed on the SWDTEN bit)) #pragma config WDTPS = 128 // Watchdog Timer Postscale Select bits (1:128) // CONFIG3H #pragma config CCP2MUX = ON // CCP2 Mux bit (CCP2 input/output is multiplexed with RC1) // CONFIG4L #pragma config STVR = ON // Stack Full/Underflow Reset Enable bit (Stack Full/Underflow will cause RESET) #pragma config LVP = OFF // Low Voltage ICSP Enable bit (Low Voltage ICSP disabled) // CONFIG5L #pragma config CP0 = OFF // Code Protection bit (Block 0 (000200-001FFFh) not code protected) #pragma config CP1 = OFF // Code Protection bit (Block 1 (002000-003FFFh) not code protected) #pragma config CP2 = OFF // Code Protection bit (Block 2 (004000-005FFFh) not code protected) #pragma config CP3 = OFF // Code Protection bit (Block 3 (006000-007FFFh) not code protected) // CONFIG5H #pragma config CPB = OFF // Boot Block Code Protection bit (Boot Block (000000-0001FFh) not code protected) #pragma config CPD = OFF // Data EEPROM Code Protection bit (Data EEPROM not code protected) // CONFIG6L #pragma config WRT0 = OFF // Write Protection bit (Block 0 (000200-001FFFh) not write protected) #pragma config WRT1 = OFF // Write Protection bit (Block 1 (002000-003FFFh) not write protected) #pragma config WRT2 = OFF // Write Protection bit (Block 2 (004000-005FFFh) not write protected) #pragma config WRT3 = OFF // Write Protection bit (Block 3 (006000-007FFFh) not write protected) // CONFIG6H #pragma config WRTC = OFF // Configuration Register Write Protection bit (Configuration registers (300000-3000FFh) not write protected) #pragma config WRTB = OFF // Boot Block Write Protection bit (Boot Block (000000-0001FFh) not write protected) #pragma config WRTD = OFF // Data EEPROM Write Protection bit (Data EEPROM not write protected) // CONFIG7L #pragma config EBTR0 = OFF // Table Read Protection bit (Block 0 (000200-001FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR1 = OFF // Table Read Protection bit (Block 1 (002000-003FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR2 = OFF // Table Read Protection bit (Block 2 (004000-005FFFh) not protected from Table Reads executed in other blocks) #pragma config EBTR3 = OFF // Table Read Protection bit (Block 3 (006000-007FFFh) not protected from Table Reads executed in other blocks) // CONFIG7H #pragma config EBTRB = OFF // Boot Block Table Read Protection bit (Boot Block (000000-0001FFh) not protected from Table Reads executed in other blocks)
      Проблема: Он то ли не запускается, то ли ещё что-то. Светодиод на 30 ножке ( PORTBbits.RB0 ( B0 ) ) просто горит. А ведь в программе я прописал, чтоб весь блок B периодически переключался на противоположенное значение, но этого не происходит. Менял значения цикла от 1000000 до 10 - 0 по цельсию.
      Вопрос, что может быть. Может минус плохой и на монтажных схемках такого рода ( как на фотке ) собирать схемы на МК - плохая идея ? Аля нужно паять ?!
      Спасибо !!!



    • Автор: Vascom
      Кто-нибудь использует stlink https://github.com/texane/stlink для работы с МК под Linux?
    • Автор: vv7
      Привет,
      Каким образом можно прошить МК в Linux ( Например: Pic18F4550 ) ?

      Результаты поиска в инете закончились провалом ...
      Я смог подключить и соединить PICKit3 в MPLAB через Linux, но ... я смог прошить мк только через Low Voltage ... и, как-то не удобно пользоваться MPLAB в этом деле.
      Под Windows я использую простую прогу Standalone PICKit3 Programmator v3.10 ( Всё Работает на УРА !!!), но нужен аналог под Linux ( Ubuntu 15.04 )

      Есть ли какой-то скрипт или прога под Линь, который просто прошивает чип HEX файлом ?
      Типа, аля: ./pickit3 -w /home/user/Desktop/Test/file.hex -c pic18f4550
      Спасибо заранее !!!
    • Автор: carlogulliani
      Добрый день, подскажите, есть директория с проектом и библиотеками
      структура директории

      /--------------------- main.c lib | |-------cmsis |-------mylib | |--------led | |-------- led.h |-------- led.c |-------STM32F4xx_StdPeriph_Driver build Makefile
      Как подключить папку led к линковщику

      // led.h #include <stdio.h> #include "stm32f4xx.h" void turnOn(); void turnOff();

      // led.c #include "led.h" void turnOn() { GPIO_SetBits(GPIOD, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15); } void turnOff() { GPIO_ResetBits(GPIOD, GPIO_Pin_12 | GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15); }

      // main.c #include <stdio.h> #include "stm32f4xx.h" #include "led.h" ... // init gpio ... extern void turnOn(); extern void turnOff(); ... // init sys clock ... int main(void) { setSysTick(); while(1) { //check the push button turnOn(); Delay(500); turnOff(); } return 0; }
      описание файла Makefile для линковщика и компилятора

      # Makefile # STM32F4-Discovery Makefile for Mac OSX SRCS=$(wildcard *.c) # Add assembly source files here or use $(wildcard *.s) for all .s files S_SRCS = CortexM4asmOps.s # Project name PROJ_NAME = test OUTPATH = build OUTPATH := $(abspath $(OUTPATH)) BASEDIR := $(abspath ./) MKDIR_P = mkdir -p ################################################### # Check for valid float argument # NOTE that you have to run make clan after # changing these as hardfloat and softfloat are not # binary compatible ifneq ($(FLOAT_TYPE), hard) ifneq ($(FLOAT_TYPE), soft) #override FLOAT_TYPE = hard override FLOAT_TYPE = soft endif endif ################################################### AS=$(BINPATH)arm-none-eabi-as CC=$(BINPATH)arm-none-eabi-gcc LD=$(BINPATH)arm-none-eabi-gcc OBJCOPY=$(BINPATH)arm-none-eabi-objcopy OBJDUMP=$(BINPATH)arm-none-eabi-objdump SIZE=$(BINPATH)arm-none-eabi-size LINKER_SCRIPT = stm32_flash.ld CPU = -mcpu=cortex-m4 -mthumb CFLAGS = $(CPU) -c -std=gnu99 -g -O2 -Wall LDFLAGS = $(CPU) -mlittle-endian -mthumb-interwork -nostartfiles -Wl,--gc-sections,-Map=$(OUTPATH)/$(PROJ_NAME).map,--cref --specs=nano.specs ifeq ($(FLOAT_TYPE), hard) CFLAGS += -fsingle-precision-constant -Wdouble-promotion CFLAGS += -mfpu=fpv4-sp-d16 -mfloat-abi=hard else CFLAGS += -msoft-float endif # Default to STM32F40_41xxx if no device is passed ifeq ($(DEVICE_DEF), ) DEVICE_DEF = STM32F40_41xxx endif CFLAGS += -D$(DEVICE_DEF) vpath %.a lib vpath %.c lib/mylib # Includes INCLUDE_PATHS = -I$(BASEDIR)/inc -I$(BASEDIR)/lib/cmsis/stm32f4xx -I$(BASEDIR)/lib/cmsis/include -I$(BASEDIR) INCLUDE_PATHS += -I$(BASEDIR)/lib/Conf INCLUDE_PATHS += -I$(BASEDIR)/lib/STM32F4xx_StdPeriph_Driver/inc INCLUDE_PATHS += -I$(BASEDIR)/mylib/im INCLUDE_PATHS += -I$(BASEDIR)/mylib/im/led # Library paths LIBPATHS = -L$(BASEDIR)/lib/STM32F4xx_StdPeriph_Driver # Libraries to link LIBS = -lstdperiph -lc -lgcc -lnosys OBJS = $(SRCS:.c=.o) OBJS += $(S_SRCS:.s=.o) ################################################### .PHONY: lib proj all: dir lib proj $(SIZE) $(OUTPATH)/$(PROJ_NAME).elf lib: $(MAKE) -C lib FLOAT_TYPE=$(FLOAT_TYPE) BINPATH=$(BINPATH) DEVICE_DEF=$(DEVICE_DEF) BASEDIR=$(BASEDIR) proj: $(OUTPATH)/$(PROJ_NAME).elf .s.o: $(AS) $(CPU) -o $(addprefix $(OUTPATH)/, $@) $< .c.o: $(CC) $(CFLAGS) -std=gnu99 $(INCLUDE_PATHS) -o $(addprefix $(OUTPATH)/, $@) $< $(OUTPATH)/$(PROJ_NAME).elf: $(OBJS) $(LD) $(LDFLAGS) -T$(LINKER_SCRIPT) $(LIBPATHS) -o $@ $(addprefix $(OUTPATH)/, $^) $(LIBS) $(LD_SYS_LIBS) $(OBJCOPY) -O ihex $(OUTPATH)/$(PROJ_NAME).elf $(OUTPATH)/$(PROJ_NAME).hex $(OBJCOPY) -O binary $(OUTPATH)/$(PROJ_NAME).elf $(OUTPATH)/$(PROJ_NAME).bin $(OBJDUMP) -S --disassemble $(OUTPATH)/$(PROJ_NAME).elf > $(OUTPATH)/$(PROJ_NAME).dis dir: $(MKDIR_P) $(OUTPATH) clean: rm -f $(OUTPATH)/*.o rm -f $(OUTPATH)/$(PROJ_NAME).elf rm -f $(OUTPATH)/$(PROJ_NAME).hex rm -f $(OUTPATH)/$(PROJ_NAME).bin rm -f $(OUTPATH)/$(PROJ_NAME).dis rm -f $(OUTPATH)/$(PROJ_NAME).map # Remove the following line if you don't want to clean the Libraries as well $(MAKE) clean -C lib flash: st-flash write build/$(PROJ_NAME).bin 0x08000000
      компилирую библиотеки

      make lib make[1]: `mylib' is up to date.
      собираю бинарник

      make
      выдает ошибку

      build/main.o: In function `main': main.c:37: undefined reference to `turnOn' main.c:39: undefined reference to `turnOff' collect2: error: ld returned 1 exit status make: *** [build/test.elf] Error 1
      Если файлы из lib/mylib/led перенести в корень (на уровень, что и main.c), тогда все собирается хорошо
      Пробовал также добавить

      SRCS=$(wildcard lib/mylib/led/*.c) ассемблер ругается что нет .o файла Assembler messages: Fatal error: can't create /lib/mylib/led/led.o: No such file or directory make: *** [lib/mylib/led/led.o] Error 1
      пытаюсь скомпилировать .o файл

      gcc -g -o -c led.c
      не может подтянуть другие хедеры

      In file included from led.c:1: ./led.h:2:10: fatal error: 'stm32f4xx.h' file not found #include "stm32f4xx.h"